在 CentOS 服务器上“Java 日志突然很多 / 打满磁盘 / 日志狂刷”,通常逃不出下面几类原因。你可以对照排查:
典型现象
catalina.out / application.log 每秒几百行Exception / StackTrace常见代码问题
while (true) {
try {
doSomething();
} catch (Exception e) {
log.error("error", e); // 异常不断
}
}
✅ 排查:
tail -f /var/log/messages
tail -f /opt/tomcat/logs/catalina.out
看是不是同一个异常一直刷。
现象
常见配置错误
<root level="DEBUG">
✅ 建议生产环境:
<root level="INFO">
现象
xxx.log 文件检查
ls -lh /var/log/
✅ 解决:
logrotatelogging:
file:
max-size: 100MB
max-history: 7
Java 应用如果往 stdout 打日志,可能被 systemd 捕获:
journalctl -u your-java-service
✅ 检查:
du -sh /var/log/journal
现象
gc.log 非常大Full GC 频繁✅ 检查:
jstat -gcutil <pid> 1000
df -h
du -sh /var/log/*
如果看到:
/var/log/messages 10G
多半是:
# 1. 找到大文件
du -sh /var/log/* | sort -h
# 2. 临时清空(不要删文件)
: > /var/log/xxx.log
# 3. 停掉异常服务
systemctl stop your-service
发一段日志或 df -h 结果,我可以直接帮你判断是代码问题还是配置问题。