在 Ubuntu 上分割(切割、轮转)Tomcat 日志,常见做法有 三种:
✅ 使用 logrotate(最推荐)
✅ 使用 Tomcat 自带日志配置(JULI)
✅ 使用 cronolog(较老方案)
下面按 生产环境最推荐方式 给你完整说明。
这是 Ubuntu / Linux 服务器 最标准、最省事 的方式。
默认路径一般是:
/opt/tomcat/logs/
# 或
/var/log/tomcat9/
常见日志:
catalina.out(最重要)localhost.logmanager.loghost-manager.logsudo nano /etc/logrotate.d/tomcat
示例配置(适用于 Tomcat 9):
/opt/tomcat/logs/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
dateext
dateformat -%Y%m%d
}
✅ 说明:
| 参数 | 作用 |
|---|---|
| daily | 每天切割 |
| rotate 7 | 保留 7 份 |
| compress | 压缩旧日志 |
| copytruncate | 不重启 Tomcat |
| dateext | 日期后缀 |
生成效果:
catalina.out
catalina.out-20260121.gz
catalina.out-20260120.gz
sudo logrotate -d /etc/logrotate.d/tomcat
强制立即执行:
sudo logrotate -f /etc/logrotate.d/tomcat
适合 不想用 logrotate 的情况。
路径:
/opt/tomcat/conf/logging.properties
示例:
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7
⚠️ 缺点:
sudo apt install cronolog
编辑:
/opt/tomcat/bin/catalina.sh
找到:
>> "$CATALINA_OUT" 2>&1 &
改为:
2>&1 | /usr/bin/cronolog "$CATALINA_BASE/logs/catalina.%Y-%m-%d.out" &
⚠️ 缺点:
| 方案 | 推荐度 | 说明 |
|---|---|---|
| logrotate | ⭐⭐⭐⭐⭐ | 生产环境首选 |
| Tomcat JULI | ⭐⭐⭐ | 仅适合简单需求 |
| cronolog | ⭐ | 老方案,不推荐 |
❌ 不要直接删除 catalina.out
✅ 使用 copytruncate 或重启 Tomcat
✅ 确保 Tomcat 用户有日志目录写权限
✅ 日志太大时优先压缩,而不是无限保留
如果你愿意,可以告诉我:
我可以给你 完全定制的一套配置。