在 Ubuntu 上 Tomcat 日志过大,一般有 几种常见原因和对应解决办法。下面按「从快到彻底」给你一套实战方案。
Tomcat 常见日志有:
/var/log/tomcat9/
├── catalina.out # 最容易爆炸
├── catalina.YYYY-MM-DD.log
├── localhost.log
├── host-manager.log
└── manager.log
重点对象:catalina.out
which logrotate
sudo vim /etc/logrotate.d/tomcat
示例(Tomcat 9):
/var/log/tomcat9/catalina.out {
daily
rotate 7
missingok
notifempty
compress
copytruncate
}
✅
copytruncate很关键:不重启 Tomcat 也能切日志
sudo logrotate -d /etc/logrotate.d/tomcat
sudo logrotate -f /etc/logrotate.d/tomcat
sudo vim /var/lib/tomcat9/conf/logging.properties
示例:
.level = INFO
org.apache.catalina.level = WARNING
⚠️ 不建议用 FINE / FINEST,日志会爆炸
如果你是自己项目:
示例(logback):
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>/var/log/myapp/app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>/var/log/myapp/app.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>7</maxHistory>
</rollingPolicy>
</appender>
# 清空 catalina.out(不删文件)
sudo truncate -s 0 /var/log/tomcat9/catalina.out
或
sudo echo > /var/log/tomcat9/catalina.out
⚠️ 只是临时止血
System.out.println最稳方案:
logrotate + INFO 日志级别 + 应用自身日志框架
如果你愿意,可以告诉我:
我可以给你精确到文件的配置。