Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.16;
Скачать: CL | DM;

Вниз

Запись в файл   Найти похожие ветки 

 
Прямой   (2004-01-05 17:14) [0]

Прога сторонних разработчиков пишет лог. Новый лог-файл создается 1 раз в сутки, но не в 00:00, а в "старый" запись более не ведется. Как отловить тот момент из моей проги, что запись более не ведется. Примечание, лог-файл открыт не для монопольной записи!


 
YuRock ©   (2004-01-05 17:30) [1]

Можно время-от-времени пробовать переименовывать/переносить файл. Если удастся - значит, файл НИКЕМ не открыт.


 
default ©   (2004-01-05 17:32) [2]

если я всё правильно понял, запись не ведётся после того как создаётся новый лог-файл, так вот на это событие и надо тогда активизироваться...


 
Прямой   (2004-01-05 17:40) [3]

default
Нет,они создаются внахлест. Вначале суток.
Далее в предидущий файл запись не ведется.
например
20030101 дата создания 00:05:25
20030102 дата создания 00:03:44

YuRock
Я же говорю что не для монопольной записи.
Можно его скопировать и в середине суток, и скопируется.
Книжку Румянцева "Работа с файлами Win32Api" я хорошо знаю.


 
YuRock ©   (2004-01-05 17:43) [4]

> Книжку Румянцева "Работа с файлами Win32Api"

:))))))

> Можно его скопировать и в середине суток, и скопируется

Так скопируется, или перенесется (с удалением)?


 
Прямой   (2004-01-05 17:47) [5]

Если лог удалить, в середине дня, я даже не знаю что будет, этот процесс критический. Если он нагнется, со мной сделают джагу-джагу. И эксперимент исключен.


 
panov ©   (2004-01-05 17:51) [6]

>Прямой

Может быть несколько методов записи.

1. Файл открывается для добавления записи каждый раз, после этого закрывается.
2. Файл открывается не монопольно и закрывается только после окончания работы с ним.
----------
По методам обновления может быть такая разница:

а. После заполнения файла запись начинается сначала без уничтожения последующих данных.
б. После заполнения файла он удаляется и создается новыя с таким же именем.
в. После заполнения файла он очищается и запись начинается веститсь в этот файл.
г. После заполнения файла создается новый файл с другим именем и запись продолжается в него.
------------------------------

Можно узнать, как работает программа у тебя?


 
Прямой   (2004-01-05 18:03) [7]

panov

Пункт 2
Пункт г, но с оговоркой. Остатки незавершенных процессов прошедших суток, продолжают дописываться в старый лог-файл, получается, что в некий момент(при переходе суток), ведется запись в 2 файла(но не долго, в среднем 3-5мин.).Соответственно то,что "случилось" в прошлые сутки дописывается в старый лог, а все что уже случилось в новых сутках , начинается писаться в новый лог.


 
panov ©   (2004-01-05 18:47) [8]

Тогда метод решения такой:
Периодически пытаемся открыть файл монопольно с запретом доступа всем остальным(На запись/чтение - неважно).
Удачный захват файла означает его освобождение другими процессами, т.е. окончание записи.


 
Sandman25 ©   (2004-01-05 18:50) [9]

А почему бы не попытаться найти оба файла?
Если у двух последних log файлов время последней записи различается меньше, чем на 3-5 минут, то ждем, есть опасность того, что во второй все еще ведется запись.


 
Прямой   (2004-01-05 18:53) [10]

Спасибо, буду пробовать, если не выйдет, темку апну.


 
YuRock ©   (2004-01-05 18:54) [11]

> panov © (05.01.04 18:47) [8]

+ еще проверив существование "нового" файла, на сколько я понял.


 
Прямой   (2004-01-05 18:57) [12]

Sandman25

Повторюсь, процессы критические, если что-то не так пойдет, это потребует, в том числе, выезд специалистов в любое время суток. Обычно 3-5 минут, но в случае перегруза сервака, может доходить до 20 минут.



Страницы: 1 вся ветка

Текущий архив: 2004.01.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
3-49398
x_x_x
2003-12-19 16:34
2004.01.16
ADO и dBase


14-49689
Жук
2003-12-26 10:53
2004.01.16
---|Ветка была без названия|---


9-49379
craker
2003-07-04 16:11
2004.01.16
Есть идея, нет людей.....


4-49813
Prov
2003-11-12 00:09
2004.01.16
MessaegBoxIndirect


3-49464
TATIANA
2003-12-17 15:28
2004.01.16
ДОБАВИТЬ ГРАФИЧЕСКОЕ ИЗОБРАЖЕНИЕ В BLOB-поле