如何设置Tomcat日志保留期限
导读:Tomcat日志保留期限设置指南 一 核心配置总览 下表列出常见日志类型、配置文件与关键参数,便于快速定位与修改。 日志类型 配置文件 关键参数 说明 catalina、localhost、manager、host-man...
Tomcat日志保留期限设置指南
一 核心配置总览
- 下表列出常见日志类型、配置文件与关键参数,便于快速定位与修改。
| 日志类型 | 配置文件 | 关键参数 | 说明 |
|---|---|---|---|
| catalina、localhost、manager、host-manager | conf/logging.properties | maxDays(如:7、15、30) | 控制按天滚动的日志保留天数 |
| 访问日志 AccessLog | conf/server.xml | maxDays(如:30) | 控制访问日志保留天数 |
| catalina.out 标准输出 | 操作系统工具 | logrotate 的 rotate 7 等 | Tomcat 默认不切割此文件,需借助系统工具轮转与清理 |
二 配置步骤
-
修改 JULI 日志保留天数(catalina、localhost、manager、host-manager)
- 打开 conf/logging.properties;2) 为各处理器设置 maxDays(示例均为 7 天):
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.maxDays = 7 1catalina.org.apache.juli.AsyncFileHandler.rotatable = true 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.maxDays = 7 2localhost.org.apache.juli.AsyncFileHandler.rotatable = true 2localhost.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter 3manager.org.apache.juli.AsyncFileHandler.level = FINE 3manager.org.apache.juli.AsyncFileHandler.directory = ${ catalina.org.apache.juli.AsyncFileHandler.directory} 3manager.org.apache.julia.AsyncFileHandler.prefix = manager. 3manager.org.apache.juli.AsyncFileHandler.suffix = .log 3manager.org.apache.juli.AsyncFileHandler.maxDays = 7 3manager.org.apache.juli.AsyncFileHandler.rotatable = true 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.juli.AsyncFileHandler.maxDays = 7 4host-manager.org.apache.juli.AsyncFileHandler.rotatile = true 4host-manager.org.apache.juli.AsyncFileHandler.formatter = java.util.logging.SimpleFormatter- 保存并重启 Tomcat 生效。
-
修改访问日志保留天数(AccessLogValve)
- 打开 conf/server.xml;2) 在 AccessLogValve 上设置 maxDays(示例 30 天):
< Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log" suffix=".txt" pattern="%h %l %u %t "%r" %s %b" maxDays="30" />- 保存并重启 Tomcat 生效。
-
处理 catalina.out 的保留(Linux 推荐 logrotate)
- 创建 /etc/logrotate.d/tomcat,示例保留 7 天并压缩:
/usr/local/tomcat/logs/catalina.out { daily rotate 7 compress missingok notifempty copytruncate }- 测试与强制执行:
sudo logrotate -d /etc/logrotate.d/tomcat # 调试 sudo logrotate -f /etc/logrotate.d/tomcat # 强制执行说明:logrotate 由系统定时任务每日运行,适合控制未切割的 catalina.out 文件大小与保留天数。
三 常见保留期限示例
- 保留最近 7 天:将各处理器与访问日志的 maxDays=7;logrotate 使用 rotate 7。
- 保留最近 15 天:将各处理器与访问日志的 maxDays=15;logrotate 使用 rotate 15。
- 保留最近 30 天:将各处理器与访问日志的 maxDays=30;logrotate 使用 rotate 30。
四 验证与注意事项
- 修改前先备份 conf/logging.properties 与 conf/server.xml;修改后重启 Tomcat 并检查 ${ catalina.base} /logs 下旧文件是否被清理。
- 使用 logrotate 时,确认日志路径与实际一致;建议先用 -d 调试,再用 -f 验证;如需按大小或时间更灵活策略,可调整 logrotate 参数(如 size、daily|weekly|monthly)。
- 若使用 AsyncFileHandler,确保同时设置 rotatable=true 与 maxDays;如使用 FileHandler,同样支持 maxDays 控制保留天数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何设置Tomcat日志保留期限
本文地址: https://pptw.com/jishu/753546.html
