Enabling log rotation in Tomcat
This document details the required steps for setting up log rotation in Tomcat running on CentOS 5, when it is installed from the Loway repository.
The rotation file
If you would like to setup Tomcat logrotation you can do the following:
vi /etc/logrotate.d/qm-tomcat6
This will create the logrotate file, that you will have to set up as follows:
/usr/local/queuemetrics/tomcat/logs/*.log { notifempty copytruncate daily rotate 10 compress missingok } /usr/local/queuemetrics/tomcat/logs/catalina.out { notifempty copytruncate dateext daily rotate 10 compress missingok }
If you want to, you can make it take care of cleaning out temp files as well (or just do it from cron as you would normally)
/usr/local/queuemetrics/tomcat/logs/catalina.out { notifempty copytruncate dateext daily rotate 10 compress missingok postrotate /bin/nice /usr/bin/find /usr/local/queuemetrics/tomcat/temp -type f -mtime +10 -exec /bin/rm {} \; > /dev/null endscript }
Misc changes
You can also look into the CentOS logrotation settings and implement some of the following changes, depending on your needs. Even if you set the rotation to daily in qm-tomcat6, logrotate.conf overrides it to weekly.
vi /etc/logrotate.conf
Set weekly to daily
# rotate log files daily daily
Change the backlogs from 4 week to 14 days
# keep 14 days worth of backlogs rotate 14
Compressed logs
# uncomment this if you want your log files compressed compress
By default logrotation runs at 4am. You can change this by editing /etc/crontab
Set it to 02:02
02 2 * * * root run-parts /etc/cron.daily