Debian中Tomcat如何日志管理
导读:Debian下Tomcat日志管理实践 一 日志位置与类型 日志默认位于 $CATALINA_BASE/logs,常见文件与作用如下: catalina.out:标准输出与错误输出(通常未自动轮转)。 catalina.YYYY-MM-...
Debian下Tomcat日志管理实践
一 日志位置与类型
- 日志默认位于 $CATALINA_BASE/logs,常见文件与作用如下:
- catalina.out:标准输出与错误输出(通常未自动轮转)。
- catalina.YYYY-MM-DD.log:Tomcat 启动、关闭等引擎日志。
- localhost.YYYY-MM-DD.log:本地主机上部署应用的日志。
- manager.YYYY-MM-DD.log / host-manager.YYYY-MM-DD.log:管理应用的日志。
- 访问日志由 AccessLogValve 生成,路径同样在 $CATALINA_BASE/logs(见下文配置)。
二 查看与实时监控
- 实时查看控制台输出:tail -f $CATALINA_BASE/logs/catalina.out。
- 按关键字过滤:grep -i “error” $CATALINA_BASE/logs/catalina.out。
- 更复杂的分析与统计可结合 awk/sed 等文本处理工具,或接入集中式日志平台(如 ELK/Graylog)。
三 日志轮转方案
-
推荐方式一(通用、对运行中进程无侵入):使用 logrotate 管理 catalina.out。
- 确认 logrotate 已安装:sudo apt-get update & & sudo apt-get install -y logrotate。
- 新建配置:sudo nano /etc/logrotate.d/tomcat,示例:
/opt/tomcat/logs/catalina.out { daily rotate 14 compress missingok notifempty copytruncate create 640 tomcat adm }- 关键点:copytruncate 先复制再清空,避免重启或信号干预;按日轮转并保留 14 天;压缩旧日志;权限属主按实际环境设置(常见为 tomcat:adm)。
- 测试与验证:sudo logrotate -f /etc/logrotate.d/tomcat;随后检查 /opt/tomcat/logs 是否生成如 catalina.out.1.gz 等文件。
-
推荐方式二(按文件句柄轮转,需能发送信号给Tomcat):使用 USR1 触发重新打开日志。
- 配置示例(按实际路径与进程标识调整):
/var/log/tomcat9/*.log { daily missingok rotate 7 compress notifempty create 640 root adm sharedscripts postrotate if [ -f /var/run/tomcat9.pid ]; then /bin/kill -USR1 $(cat /var/run/tomcat9.pid) fi endscript }- 关键点:轮转后向 Tomcat 主进程发送 USR1,让其重新打开日志文件,避免文件句柄占用旧文件。
- 测试:sudo logrotate -f /etc/logrotate.d/tomcat9。
- 配置示例(按实际路径与进程标识调整):
-
方案选择建议
- 无法或不想管理进程信号时,优先使用 copytruncate。
- 希望严格按文件句柄轮转、且能可靠发信号时,使用 USR1 方式。
四 访问日志配置
- 在 $CATALINA_BASE/conf/server.xml 的 Engine 内添加或修改 AccessLogValve,示例:
< Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="access_log" suffix=".txt" pattern="common"/>- 常用 pattern:common(CLF)、combined(含 Referer/User-Agent)。
- 建议将访问日志与其他日志分目录或分文件管理,便于独立轮转与保留策略。
五 日志级别与格式优化
- 调整 $CATALINA_BASE/conf/logging.properties:
- 提升/降低特定组件日志级别,例如:
- catalina.org.apache.juli.FileHandler.level = FINE
- localhost.org.apache.juli.FileHandler.level = FINE
- 或按包调整:org.apache.catalina.startup.level = WARNING
- 自定义输出格式(可选):
- 使用单行格式器:java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
- 或自定义 SimpleFormatter 格式字符串(示例见常见做法)。
- 修改后建议重启 Tomcat 使配置生效(或按需热加载)。
- 提升/降低特定组件日志级别,例如:
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian中Tomcat如何日志管理
本文地址: https://pptw.com/jishu/770519.html
