Вращение журнала с датой, добавленной к имени файла - PullRequest
2 голосов
/ 07 марта 2011

Изначально я думал, что ротация журналов будет проще с модулем Perl Logfile: Rotate, но теперь изменилось требование добавления даты к имени файла журнала.

Мне нужно:

  1. Добавить имя файла, повернутое (ежедневно) с датой.
  2. Заархивировать файлы журнала старше 10 дней.
  3. Удалить файлы журнала старше 30 дней.
  4. Журналы, которые нужно вращать в каталоге (т. Е. ../Logs)

Я попробовал Python logging.handlers.TimedRotatingFileHandler , но он создает новые пустые файлы журнала при выполнении cron.Я думаю, что это предназначено для процесса, который непрерывен и не выполняется cron за интервал.

Я открыт для любого языка программирования (сценариев) для легкой ротации журналов.У кого-нибудь есть идеи получше?

Не собирался просить код.Просто предложения.

1 Ответ

5 голосов
/ 07 марта 2011

logrotate Утилита на большинстве * nix дистрибутивов, доступных сегодня, поддерживает следующие параметры:

 compress
          Old versions of log files are compressed with gzip by default. See also nocompress.

 dateext
          Archive old versions of log files adding a daily extension like YYYYMMDD instead of simply adding a number.

 olddir directory
          Logs are moved into directory for rotation. The directory must be on the same physical device as the log file being
          rotated, and is assumed to be relative to the directory holding the log file unless an absolute path name is speci-
          fied.  When  this  option is used all old versions of the log end up in directory.  This option may be overriden by
          the noolddir option.

 notifempty
          Do not rotate the log if it is empty (this overrides the ifempty option).

 postrotate/endscript
          The lines between postrotate and endscript (both of which must appear on lines by themselves)  are  executed  after
          the  log file is rotated. These directives may only appear inside of a log file definition.  See prerotate as well.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...