Ubuntu Tomcat 日志保留策略设置指南
一 核心思路与适用场景
二 方案一 Logrotate 管理 catalina.out(推荐)
/opt/tomcat/logs/catalina.out {
daily
rotate 7
size 200M
copytruncate
compress
missingok
notifempty
dateext
dateformat -%Y%m%d
}
sudo logrotate -d /etc/logrotate.conf(检查语法与执行计划)。sudo logrotate -f /etc/logrotate.d/tomcat。三 方案二 Tomcat JULI 文件日志按天保留
handlers = 1catalina.org.apache.juli.AsyncFileHandler, \
2localhost.org.apache.juli.AsyncFileHandler, \
3manager.org.apache.juli.AsyncFileHandler, \
4host-manager.org.apache.juli.AsyncFileHandler, \
java.util.logging.ConsoleHandler
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
1catalina.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.
1catalina.org.apache.juli.AsyncFileHandler.suffix = .log
1catalina.org.apache.juli.AsyncFileHandler.rotatable = true
1catalina.org.apache.juli.AsyncFileHandler.maxDays = 7
1catalina.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.
2localhost.org.apache.juli.AsyncFileHandler.suffix = .log
2localhost.org.apache.juli.AsyncFileHandler.rotatable = true
2localhost.org.apache.juli.AsyncFileHandler.maxDays = 7
2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.
3manager.org.apache.juli.AsyncFileHandler.suffix = .log
3manager.org.apache.juli.AsyncFileHandler.rotatable = true
3manager.org.apache.juli.AsyncFileHandler.maxDays = 7
3manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.
4host-manager.org.apache.juli.AsyncFileHandler.suffix = .log
4host-manager.org.apache.julia.AsyncFileHandler.rotatable = true
4host-manager.org.apache.juli.AsyncFileHandler.maxDays = 7
4host-manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter
sudo systemctl restart tomcat(或按你的服务管理方式执行)。四 方案三 访问日志 AccessLogValve 保留策略
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
rotatable="true"
maxDays="30"
pattern="%h %l %u %t "%r" %s %b" />
五 验证与运维建议
grep logrotate /var/log/syslog;必要时用 sudo logrotate -f /etc/logrotate.d/tomcat 强制执行一次。kill -USR1 或重启)通知 Tomcat 重新打开日志文件,否则可能出现写入失败或短暂丢日志。/opt/tomcat*/logs/catalina.out { ... }。