在 Debian 上,Tomcat 日志(主要是 catalina.out)默认不会自动分割,时间久了会非常大。常见做法有下面几种,按“推荐程度”给你说明。
Debian 自带 logrotate,非常适合分割 catalina.out。
sudo vi /etc/logrotate.d/tomcat
示例(假设 Tomcat 安装在 /opt/tomcat,用户是 tomcat):
/opt/tomcat/logs/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
daily:每天分割rotate 7:保留 7 份compress:压缩旧日志copytruncate:不重启 Tomcat 直接截断日志(重要)sudo logrotate -d /etc/logrotate.d/tomcat
sudo logrotate -f /etc/logrotate.d/tomcat
✅ 这是生产环境最常用方案
Tomcat 的 conf/logging.properties 可以控制:
catalina.loglocalhost.logmanager.log示例:
1catalina.org.apache.juli.FileHandler.maxDays = 7
1catalina.org.apache.juli.FileHandler.rotatable = true
⚠️ 但 对 catalina.out 无效
sudo apt install cronolog
bin/catalina.sh找到:
>> "$CATALINA_OUT" 2>&1 &
改为:
2>&1 | /usr/bin/cronolog /opt/tomcat/logs/catalina.%Y-%m-%d.out &
⚠️ 需要改启动脚本,升级 Tomcat 容易丢配置
如果是 你自己的 Java 应用:
logback + RollingFileAppenderSystem.out.println✅ 最规范,但和 Tomcat 容器日志无关
| 场景 | 推荐方案 |
|---|---|
| 生产服务器 | ✅ logrotate |
| 不想改 Tomcat | ✅ logrotate |
| 老系统 | cronolog |
| Java 应用日志 | logback |
如果你愿意,可以告诉我:
我可以帮你写一份可直接用的 logrotate 配置。