在 Debian 上,Tomcat 日志轮转(log rotation)常见有 三种方式,最推荐的是利用系统自带的 logrotate。下面按使用场景说明。
Debian 默认安装了 logrotate,Tomcat 安装后通常已经在:
/etc/logrotate.d/tomcat9
# 或 tomcat8 / tomcat10,取决于版本
cat /etc/logrotate.d/tomcat9
典型内容示例:
/var/log/tomcat9/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 tomcat tomcat
sharedscripts
postrotate
systemctl reload tomcat9 > /dev/null 2>&1 || true
endscript
}
logrotate -d /etc/logrotate.d/tomcat9 # 模拟
logrotate -f /etc/logrotate.d/tomcat9 # 强制执行
Tomcat 默认使用 java.util.logging(JULI),配置文件在:
/var/lib/tomcat9/conf/logging.properties
catalina.outcatalina.loglocalhost.log⚠️ 注意:
catalina.out 不会自动轮转catalina.out 是标准输出,最容易变大。
/var/log/tomcat9/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
✅ copytruncate 很关键(不重启 Tomcat)
适合大项目:
log4j2RollingFileAppender| 参数 | 作用 |
|---|---|
| daily | 每天轮转 |
| rotate N | 保留 N 份 |
| compress | 压缩旧日志 |
| copytruncate | 不重启进程截断日志 |
| missingok | 日志不存在不报错 |
✅ 最佳方案:
catalina.out 使用 copytruncate如果你告诉我:
我可以给你一份可直接用的 logrotate 配置。