在 Debian 上,Tomcat 日志轮转通常有两种常见做法:
下面分别说明。
Debian 默认带有 logrotate,Tomcat 安装后一般会在:
/etc/logrotate.d/tomcat9 (或 tomcat8 / tomcat10,视版本而定)
cat /etc/logrotate.d/tomcat9
典型内容类似:
/var/log/tomcat9/catalina.out {
weekly
rotate 4
compress
delaycompress
missingok
notifempty
copytruncate
}
weekly / daily:轮转周期rotate 4:保留 4 个旧日志compress:压缩旧日志copytruncate:复制后清空原文件(Tomcat 必须用它,因为 Tomcat 不会重新打开日志文件)notifempty:空文件不轮转logrotate -d /etc/logrotate.d/tomcat9 # 测试(不真正执行)
logrotate -f /etc/logrotate.d/tomcat9 # 强制执行
⚠️ 注意:
catalina.out不支持 Tomcat 自带的 rotation
只有localhost.log、manager.log等可以使用logging.properties
1catalina.org.apache.juli.AsyncFileHandler.rotatable = true
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 30
✅ 生产环境推荐
catalina.out → logrotate + copytruncate✅ 不要做的事
rm catalina.outcatalina.out/var/log/tomcat10/*.log
/var/log/tomcat10/catalina.out {
daily
rotate 7
compress
delaycompress
missingok
notifempty
copytruncate
}
如果你愿意,可以告诉我:
我可以给你一份可直接用的配置。