Дошли руки описать простой logrotate-механизм для NXLog, настройка которого была описана несколько раньше. Выглядит это примерно так:
<Extension logrotate>
Module xm_fileop
<Schedule>
When @daily
Exec file_cycle('C:\nxlog\FloorSwitches\172.21.80.101.log', 14);
Exec file_cycle('C:\nxlog\FloorSwitches\172.21.80.141.log', 14);
Exec file_cycle('C:\nxlog\BladeAMM\172.21.81.20.log', 14);
Exec file_cycle('C:\nxlog\BladeSwitches\172.21.80.161', 14);
Exec file_cycle('C:\nxlog\de1s\10.118.3.153.log', 7);
Exec file_cycle('C:\nxlog\InetRouters\172.21.94.56.log', 30);
Exec file_cycle('C:\nxlog\InetSwitches\172.21.80.109.log', 14);
Exec file_cycle('C:\nxlog\InetSwitches\172.21.80.110.log', 14);
Exec file_cycle('C:\nxlog\InetSwitches\172.21.80.149.log', 14);
Exec file_cycle('C:\nxlog\InetSwitches\172.21.80.150.log', 14);
</Schedule>
</Extension>
К сожалению, не знаю, как автоматизировать добавление в этот модуль файлов для ротирования, поэтому приходится все необходимые файлы описывать вручную.
Пару слов о том, что тут сделано. Используется модуль расширения (Extension Module) xm_fileop, который добавляет нам процедуру file_cycle(). С ее помощью мы ротируем заданный в первом аргументе файл столько раз, сколько указано во втором аргументе.
Периодичность операции ротирования описывается директивой When (в примере - ежедневная ротация), некоторые периоды (например, 1 hour) задаются директивой Every (подробности - в документации).
Так как модули расширения не работают напрямую с поступающими log-данными, то в route они не включаются. Поэтому весь описанный выше блок следует поместить в начали или конце конфигурационного файла, после описания Input/Output-модулей и route-блока.
P.S.: наткнулся на удобный конвертер xml-подобного кода в приемлемый для вставки в html-страницу.
Комментариев нет:
Отправить комментарий