Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.015 c
1-49486
Vl_
2004-01-03 20:34
2004.01.16
МАТРИЦЫ


1-49495
AllDer
2004-01-03 00:54
2004.01.16
Движение панели мышью


1-49622
miracle_fox
2004-01-04 22:32
2004.01.16
как переписать итемы из листвью в файл при закрытии программы


1-49574
Pa5ha
2004-01-05 16:14
2004.01.16
Куда засунуть файлы, чтоб путь поиска постоянно не писать?


3-49457
Layner
2003-12-11 12:17
2004.01.16
Может ли MS SQL Server 2000 (хр. процедура и т.п.) рассылать




   Наверх