Правильная ротация логов java/tomcat’a

Всё бы хорошо, но tomcat не понимает сигналs HUPSIGUSR1 (при их получении он просто завершается). Как быть, если надо ротировать логи. Есть 2 варианта: через системный log-ротатор и через встроенные механизмы самого tomcat’a. Я рассмотрю первый вариант, так как в нём больше возможностей в плане ротации файлов. Но тут есть нюанс: ротировать будем с помощью метода copytruncate, то есть нужный нам лог сначала копируется, а потом урезается до нулевой длинны, тем самым не нарушая последующей записи в исходный лог.

Linux

Ниже показан пример для logrotate (ключевой параметр здесь copytruncate):

/var/tomcat/logs/catalina.out {
notifempty
copytruncate
dateext
daily
rotate 10
compress
missingok
}

Solaris

Ниже показан пример для logadm (ключевой параметр ‘-c’):

# logadm -w /var/tomcat6/logs/catalina.out -C 5 -c -s 100m -z 0

FreeBSD/OpenBSD

К сожалению, newsyslog в этих ОСях не поддерживает copytruncate. Но можно использовать из портов logrotate.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *