Debian 上 Tomcat 日志“满”(磁盘被占满或日志文件异常大)通常并不是 Debian 本身的问题,而是 Tomcat 日志机制 + 配置 + 应用行为 共同导致的。下面按常见原因从“最常见 → 较少见”说明。
很多 Java 应用默认使用:
log4jlogbackjava.util.logging如果级别设为 DEBUG 或 INFO,且请求量大:
DEBUG xxx
DEBUG yyy
DEBUG zzz
➡ 日志迅速膨胀
典型现象
catalina.out 非常大✅ 解决:
<root level="WARN">
或
logging.level.root=WARN
在 Debian 上:
catalina.out 默认不会被 Tomcat 自动切割如果你的应用:
e.printStackTrace()➡ 文件无限增长
✅ 解决方式(任选):
logrotateTomcat 自带:
catalina.loglocalhost.loghost-manager.log但 默认不一定自动清理
✅ 检查:
ls -lh /var/log/tomcat9/
✅ 常见修复:
apt install logrotate
server.xml 中:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
如果:
➡ 每日几个 GB
✅ 可限制:
rotatable="true"
长期运行后:
.log.txt堆积几十个
✅ logrotate 示例:
/var/log/tomcat9/*.log {
daily
missingok
rotate 7
compress
copytruncate
}
例如:
try {
...
} catch (Exception e) {
e.printStackTrace();
}
或在循环中:
while (true) {
log.error("fail");
}
➡ 日志爆炸
如:
✅ 建议:
logging.level.org.hibernate=WARN
logging.level.org.springframework.security=WARN
比如:
/var 单独分区✅ 检查:
df -h
有时:
# 1. 看哪个文件大
du -sh /var/log/tomcat9/*
# 2. 看磁盘
df -h
# 3. 看 tomcat 配置
cat /etc/tomcat9/logging.properties
# 4. 看 server.xml
grep Valve /etc/tomcat9/server.xml
Debian 上 Tomcat 日志满,90% 是因为:应用日志太多 + catalina.out 不轮转 + 没有 logrotate
如果你愿意,可以贴:
/var/log/tomcat9 目录内容logging.properties我可以帮你精确指出是哪一个在“吃磁盘”。