Полное управление журналом (python) - PullRequest
0 голосов
/ 31 мая 2011

Были заданы аналогичные вопросы, но я не нашел простого способа сделать это

У нас есть несколько журналов приложений различных типов, которые заполняют пространство, и мы сталкиваемся с другими нежелательными проблемами.Как мне написать скрипт мониторинга (архивирование файлов определенного размера, перемещение их, просмотр их и т. Д.) Для этого обслуживания?Я ищу простое решение (как в том, что использовать?), Если это возможно в Python или, возможно, просто сценарий оболочки.

Спасибо.

Ответы [ 2 ]

7 голосов
/ 31 мая 2011

«Стандартный» способ сделать это (по крайней мере, на большинстве дистрибутивов Gnu / Linux) - использовать logrotate . Я вижу /etc/logrotate.conf на моем компьютере Debian, в котором есть сведения о том, какие файлы вращать и с какой периодичностью. Это вызвано ежедневной записью cron. Это то, что я бы порекомендовал.

Если вы хотите, чтобы ваше приложение делало это (что на самом деле является проблемой, поскольку это не работа), вы можете написать собственный обработчик log . RotatingFileHandler (или TimedRotatingFileHandler) может работать, но вы можете написать собственный.

Большинство систем по умолчанию настроены на автоматическое вращение файлов журналов, которые генерирует syslog. Возможно, вы захотите использовать SysLogHandler и войти в syslog (из всех ваших приложений, независимо от языка), чтобы инфраструктура системы автоматически позаботилась о вас.

0 голосов
/ 31 мая 2011

Используйте logrotate , чтобы выполнить работу за вас.

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

В течение многих лет я сталкивался с несколькими подобными приложениями, но даже для них вы можете настроить logrotate для перезапуска их при вращении.журналы.

...