Linux Tomcat日志轮转策略
一 默认行为与局限
二 推荐策略 logrotate管理catalina.out
/opt/tomcat/logs/catalina.out {
daily
rotate 7
size 100M
copytruncate
compress
delaycompress
missingok
notifempty
dateext
dateformat -%Y%m%d
su tomcat tomcat
}
关键参数说明:
logrotate -d /etc/logrotate.d/tomcat(语法/路径检查),logrotate -f /etc/logrotate.d/tomcat(强制执行一次)。三 替代与增强方案
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
| /usr/local/cronolog/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null &
四 多实例与历史日志清理
/opt/tomcat*/logs/catalina.out {
daily
rotate 15
copytruncate
compress
missingok
dateext
su tomcat tomcat
}
0 2 * * * find /opt/tomcat*/logs -name 'catalina.out-*-gz' -mtime +7 -delete
0 2 * * * find /opt/tomcat*/logs -name 'localhost_access_log.*.txt' -mtime +7 -delete
也可在 logrotate 的 postrotate/endscript 中加入自定义清理命令,实现与轮转动作联动。