在 Debian 上清理 Tomcat 日志,通常分手动清理、自动轮转(推荐)、彻底禁用/限制日志几种方式。下面以最常见的 Tomcat 8/9/10 为例说明。
默认路径一般是:
/var/log/tomcat9/
常见日志文件:
catalina.out(最主要,容易变大)catalina.xxxx-xx-xx.loglocalhost.xxxx-xx-xx.loghost-manager.*manager.*localhost_access_log.*.txtsudo systemctl stop tomcat9
sudo rm -f /var/log/tomcat9/*
sudo systemctl start tomcat9
⚠️ 不要删除正在写入的 catalina.out 而不重启,否则可能写错文件。
sudo truncate -s 0 /var/log/tomcat9/catalina.out
其他日志同理:
sudo truncate -s 0 /var/log/tomcat9/*.log
编辑配置:
sudo nano /etc/logrotate.d/tomcat9
示例内容:
/var/log/tomcat9/*.log
/var/log/tomcat9/catalina.out {
daily
missingok
rotate 7
compress
notifempty
copytruncate
}
说明:
copytruncate:不重启 Tomcat 也能清日志 ✅rotate 7:保留 7 天测试:
sudo logrotate -d /etc/logrotate.d/tomcat9
编辑:
sudo nano /etc/tomcat9/logging.properties
示例:
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7
只保留 7 天日志(Tomcat 9+ 支持)
sudo nano /etc/tomcat9/logging.properties
.level = WARNING
编辑:
sudo nano /etc/tomcat9/server.xml
注释掉:
<!-- <Valve className="org.apache.catalina.valves.AccessLogValve" ... /> -->
#!/bin/bash
truncate -s 0 /var/log/tomcat9/catalina.out
find /var/log/tomcat9 -name "*.log" -mtime +7 -delete
✅ 生产环境:logrotate + copytruncate
✅ 临时处理:truncate -s 0
❌ 不建议:直接 rm 正在写的日志
如果你用的是 Docker / systemd / 特定版本 Tomcat,可以告诉我,我给你定制方案。