Debian 上 Tomcat 日志过大,通常不是 Debian 本身的问题,而是 Tomcat 的日志配置、应用日志、或运行方式 导致的。下面按常见原因 → 排查方法 → 解决方案来说明。
在 Debian / Ubuntu 上,Tomcat 常见路径:
/var/log/tomcat9/ # Tomcat 9(最常见)
/var/log/tomcat8/
/var/log/tomcat/
常见日志文件:
| 文件 | 说明 |
|---|---|
catalina.out |
最容易导致“日志过大” |
catalina.YYYY-MM-DD.log |
按日期的 Tomcat 日志 |
localhost.*.log |
应用相关 |
manager.*.log |
Manager 应用 |
host-manager.*.log |
Host Manager |
catalina.out 无限增长(最常见)原因:
catalina.out 默认 不会自动轮转System.out.println() 或 log4j/logback 输出到控制台检查:
ls -lh /var/log/tomcat9/catalina.out
常见于:
log4j.propertieslog4j2.xmllogback.xmlDebian 虽然自带 logrotate,但:
典型表现:
如果你用:
systemctl status tomcat9
journalctl -u tomcat9
Tomcat 输出还会进入 journald,也可能造成磁盘压力。
du -sh /var/log/tomcat9/*
watch -n 1 'ls -lh /var/log/tomcat9/catalina.out'
tail -n 100 /var/log/tomcat9/catalina.out
catalina.out(强烈推荐)编辑:
/etc/systemd/system/tomcat9.service.d/override.conf
或:
systemctl edit tomcat9
添加:
[Service]
StandardOutput=null
StandardError=journal
然后:
systemctl daemon-reload
systemctl restart tomcat9
✅ 不再生成 catalina.out
sudo nano /etc/logrotate.d/tomcat9
示例:
/var/log/tomcat9/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
测试:
logrotate -d /etc/logrotate.d/tomcat9
<root level="WARN">
<appender-ref ref="CONSOLE"/>
</root>
<Root level="warn">
禁止:
<Root level="debug">
System.out.println()find /var/log/tomcat9 -name "*.log" -mtime +30 -delete
✅ Tomcat 日志配置建议
catalina.outlogback / log4j2INFO 或 WARNlogrotate / logging.properties你可以直接贴:
tomcat版本
ls -lh /var/log/tomcat*/