在 CentOS 上 Java 日志“超大”通常不是单个文件自然变大,而是日志配置或运行环境出了问题。下面按最常见原因给你梳理,并给出对应解决办法。
很多 Java 程序直接用:
System.out.println(...)
或日志框架但没配 rolling。
结果:
catalina.out / nohup.out / app.log 一直增长✅ 解决:
catalina.out 用 logrotate/opt/tomcat/logs/catalina.out {
copytruncate
daily
rotate 7
compress
missingok
}
logback / log4j2 的 RollingFile生产环境却开了:
<level>DEBUG</level>
问题:
✅ 解决:
<level>INFO</level>
典型情况:
catch (Exception e) {
log.error("error", e);
}
但异常不断触发(如网络断开)
结果:
✅ 解决:
nohup java -jar app.jar &
默认输出到 nohup.out
✅ 解决:
nohup java -jar app.jar > /dev/null 2>&1 &
或统一走日志框架
CentOS 本身日志:
/var/log/messages/var/log/audit/audit.logJava 若用 systemd:
journalctl -u yourapp
也可能非常大
✅ 解决:
journalctl --vacuum-size=500M
有时不是文件大,而是:
✅ 检查:
df -i
# 看哪个文件最大
du -sh /var/log/* /opt/*/logs/* 2>/dev/null | sort -h
# 看实时增长
tail -f app.log
# 看 Java 进程
ps -ef | grep java
✅ 使用:
如果你愿意,可以贴:
我可以直接帮你写一份可用配置。