在 Ubuntu 上清理 Tomcat 日志,常见做法有手动清理、定时任务、配置日志滚动几种。下面按常用程度给你说明。
默认路径一般是:
/var/log/tomcat9/ # Ubuntu 通过 apt 安装
# 或
/opt/tomcat/logs/ # 手动安装
主要日志文件:
catalina.out(最重要,容易变大)catalina.YYYY-MM-DD.loglocalhost.loglocalhost_access_log.*.txt# 查看大小
du -sh /var/log/tomcat9/*
# 清空 catalina.out(不删文件,避免 Tomcat 写错误)
> /var/log/tomcat9/catalina.out
# 删除旧日志
rm -f /var/log/tomcat9/*.log
rm -f /var/log/tomcat9/localhost_access_log.*
⚠️ 不要直接 rm catalina.out,否则 Tomcat 可能继续写已删除文件,磁盘不释放。
Ubuntu 自带 logrotate,适合长期管理。
sudo nano /etc/logrotate.d/tomcat
/var/log/tomcat9/catalina.out
/var/log/tomcat9/*.log
/var/log/tomcat9/localhost_access_log.*.txt {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
说明:
copytruncate:不重启 Tomcat 也能截断日志(很关键)rotate 7:保留 7 天compress:压缩旧日志sudo logrotate -d /etc/logrotate.d/tomcat
sudo logrotate -f /etc/logrotate.d/tomcat
如果是 catalina.out 太大:
编辑:
/etc/tomcat9/logging.properties
可减少控制台输出,或改用 java.util.logging。
sudo crontab -e
每天凌晨清理 7 天前日志:
0 0 * * * find /var/log/tomcat9 -name "*.log" -mtime +7 -delete
0 0 * * * find /var/log/tomcat9 -name "catalina.out" -exec truncate -s 0 {} \;
✅ 生产环境:logrotate + copytruncate
✅ 临时处理:> catalina.out
❌ 不推荐:直接 rm catalina.out
如果你愿意,可以告诉我:
我可以帮你写一份精确可用的配置。