CentOS 上 Java 应用日志“暴涨”通常不是 CentOS 本身的问题,而是 Java 应用、日志框架配置或运行环境 导致的。下面按常见原因 + 排查思路给你一个系统性的分析。
例如:
DEBUG / TRACE 级别在生产环境开启表现
DEBUG xxx 或 SQL: 内容解决
<!-- logback 示例 -->
<root level="INFO">
典型代码问题:
catch (Exception e) {
e.printStackTrace(); // 或 log.error("err", e);
}
如果异常在循环 / 定时任务中:
排查
grep -c "Exception" app.log
例如:
@Scheduled 任务频率过高常见问题:
app.log,不切分正确示例(logback)
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
如果你用:
journalctl -u your-java-service
Java 的 stdout/stderr 会进 journal。
查看
journalctl -u xxx --disk-usage
解决
# /etc/systemd/journald.conf
SystemMaxUse=500M
很多启动脚本:
java -jar app.jar > app.log 2>&1
如果没滚动:
df -h
df -i
有时不是日志大,而是:
du -sh /var/log/*
du -sh /opt/app/logs/*
watch -n 1 "ls -lh app.log"
tail -f app.log
top -c
jstack <pid> | head
如果你愿意,可以贴:
cat /etc/redhat-release)我可以直接帮你定位是哪一类问题并给出配置修改方案。