[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Логирование и ротация: svlogd, multilog и другие



Hello!

Настраиваю runit, управление процессами устраивает, а вот логирование
не очень. Комплектный svlogd создает мерзкие имена ротируемых файлов
$ ls /var/log/postgresql/8.1/
@400000004a9777b313fb2684.s  @400000004a978d0c1512ad1c.s  current  lock
и вдобавок не позволяет ротировать в определенное время, например, 
посуточно. Можно ротировать регулярно, но время считается от момента 
запуска, что мне неудобно. Также можно ротировать по достижению 
определенного размера, что мне не нужно. Старые логи удалять не умеет.

Если установить daemontools, можно воспользоваться multilog, который
умеет удалять старые логи, но время в лог пишет в собственном несуразном
и нечитабельном формате, требующем дальнейшей конвертации. В каком 
виде создает имена ротируемых файлов не знаю, не проверял.

Вопрос: можно ли найти логирующую систему с посуточной ротацией, 
человекопонятными метками времени в логе и именами ротируемых файлов,
такими, чтобы по ним можно было выполнять сортировку (строк или файлов),
удалением старых файлов, умеющую получать входные данные из stdin? 
Наличие параметров для тюнинга буферов подразумевается. Наличие
средств фильтрации лога приветствуется. Возможность передачи в syslog 
интересна, хотя не уверен, что полезна.

P.S. syslog для целей разработчиков дико неудобен - каждый раз 
переписывать его конфиг, когда в каком-то из десятка сервисов захотелось 
логировать какую-нибудь мелочь (логины пользователей, вывод на печать, 
etc.) не подходит. Не говоря уже о том, что многие логи нужны с правами 
отдельного пользователя, для которого этот лог и пишется, а более никому
и не нужны.

Best regards, Alexey Pechnikov.
http://pechnikov.tel/

Reply to: