Log-файл
От: Kitan  
Дата: 09.05.02 11:25
Оценка:
Допустим, я хочу создавать для программы лог-файл и записывать в него сообщения из программы, для последующего их анализирования. Так вот вопрос: лог-файл открывать один раз в начале работы программы и закрывать в конце, или открывать/закрывать при записи каждого нового сообщения?
Логично было бы открывать/закрывать при записи сообщений (типа меньше файлов открыто во время рвботы программы), но время на это тоже тратится, а скорость работы программы крайне критична.
Кто сталкивался — подскажите.
(Или это все экономия на спичках? )
Программирую — значит существую
Re: Log-файл
От: Аноним  
Дата: 09.05.02 11:39
Оценка:
Здравствуйте Kitan, Вы писали:

K>Допустим, я хочу создавать для программы лог-файл и записывать в него сообщения из программы, для последующего их анализирования. Так вот вопрос: лог-файл открывать один раз в начале работы программы и закрывать в конце, или открывать/закрывать при записи каждого нового сообщения?

K>Логично было бы открывать/закрывать при записи сообщений (типа меньше файлов открыто во время рвботы программы), но время на это тоже тратится, а скорость работы программы крайне критична.
K>Кто сталкивался — подскажите.
K>(Или это все экономия на спичках? :???: )

Если открывать файл в начале работы и закрывать в конце то естьь вероятность (и довольно большая) что если программа вылетит (её принудительно завершат) то последние записи в логе не будут. Можно обойти это отключив кеширование. Открывать и закрывать файл каждый раз ОЧЕНЬ плохо на FAT16/FAT32 дисках, на NTFS не очень, но тоже не ахти какая идея.
А чтот касаеться логов на NT платформе для этотго есть специальное API для ведения логов + eventlog service
Re[2]: Log-файл
От: Kitan  
Дата: 09.05.02 12:03
Оценка:
Здравствуйте Аноним, Вы писали:

А>Если открывать файл в начале работы и закрывать в конце то естьь вероятность (и довольно большая) что если программа вылетит (её принудительно завершат) то последние записи в логе не будут. Можно обойти это отключив кеширование. Открывать и закрывать файл каждый раз ОЧЕНЬ плохо на FAT16/FAT32 дисках, на NTFS не очень, но тоже не ахти какая идея.

А>А чтот касаеться логов на NT платформе для этотго есть специальное API для ведения логов + eventlog service

А если файл один раз открыть, и после каждой записи сообщения flush'ить файл?
ЗЫ: платформа не NT
Программирую — значит существую
Re[3]: Log-файл
От: Snax Россия  
Дата: 12.05.02 23:43
Оценка:
Здравствуйте Kitan, Вы писали:

K>А если файл один раз открыть, и после каждой записи сообщения flush'ить файл?

K>ЗЫ: платформа не NT

Тормоза. Причем страшные. Если важна скорость и нужны логи,
можно написать _отдельную_ прогу, которая будет выделять куски памяти и
разделять эту память с твоим процессом. Твой процесс сможет туда писать,
(и быстро) а если умрет — ничего не потеряется.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.