在 Debian 上 Tomcat 日志“满”(磁盘被占满或日志文件异常巨大)是常见问题,通常不是 Tomcat 本身的 bug,而是配置或使用方式导致的。下面按「常见原因 → 排查方法 → 解决建议」说明。
catalina.out(最常见)catalina.out 不会自动切割System.out.println、log.error 都会写进去/var/log/tomcat9/catalina.out
✅ 这是 Debian + Tomcat 日志满的第一大原因
logging.properties 中:.level = FINE
while (true) {
log.error("error", e);
}
logrotatemaxFileSizemaxHistory| 版本 | 说明 |
|---|---|
| Tomcat 8/9 | 默认 catalina.out |
| Tomcat 10 | 同上 |
df -h
du -sh /var/log/tomcat9/*
ls -lh /var/log/tomcat9/
tail -n 100 /var/log/tomcat9/catalina.out
编辑或新建:
/etc/logrotate.d/tomcat9
示例:
/var/log/tomcat9/catalina.out {
daily
rotate 7
compress
missingok
notifempty
copytruncate
}
测试:
logrotate -d /etc/logrotate.d/tomcat9
修改:
/etc/default/tomcat9
或 systemd:
/etc/systemd/system/tomcat9.service.d/override.conf
将 stdout 重定向到 /dev/null
System.out<rollingFile>
<maxFileSize>100MB</maxFileSize>
<maxHistory>10</maxHistory>
</rollingFile>
/etc/tomcat9/logging.properties
.level = INFO
# 清空但不删文件
: > /var/log/tomcat9/catalina.out
# 或重启 tomcat
systemctl restart tomcat9
Debian 上 Tomcat 日志满,99% 是因为
catalina.out没轮转 + 应用日志乱打。
如果你愿意,可以贴:
logging.properties 或 logback 配置我可以帮你精准改配置。