Pull to refresh

Comments 5

>> проблемы одновременной записи в лог-файл

Я такую проблему обходил так:
1) держал на диске временную папку
2) каждый вызов функции логирования создавал НОВЫЙ файл (в этой временной папке), с именем вида "-.log", например «1310730104-B2E1.log»
3) периодически «заходил» в ту-самую папку, и «архивировал» отдельные записи в нужные места (и/или в один общий файл) с последующим удалением этих отдельных записей.
Я уже думал про создание нового файла, однако здесь есть подводные камни.

Один подводный камень, это реализация «потоков» через powershell (.NET Объекты не рассматриваем. Это отдельные джобы, которые ничего друг о друге не знают и момент когда надо собирать эти логи в один файл непонятен.

Я обхожу это реализацией «менеджера потоков», который пишет вывод этих джобов в файл последовательно. Однако данная реализация мне крайне не нравится, так как сильно нагружает код и не может быть применена для запуска различных скриптов (в разное время, с разных серверов и т.п.)

Сейчас подумываю над проверкой записи в файл в цикле размером 10 итераций — если не получилось, вываливаем ошибку.
Второй подводный камень — это то, что я не хочу нагружать диск этим, так как скрипт может запускаться и из сетевой шары, в частности…
не совсем понятна фраза «нагружать диск этим». Что в один большой файл все сливать, что 1000 маленьких — объем (нагруженность) одинаковой будет!
Каждый запрос на создание нового файла — это очень медленно. В случае с локальной системой — это не очень заметно, однако в случае сетевой — это уже не так быстро.
Sign up to leave a comment.

Articles