温馨提示×

Debian下Tomcat日志配置方法

小樊
40
2025-11-24 18:02:36
栏目: 智能运维

Debian下Tomcat日志配置方法

一 核心配置与路径

  • 配置文件位置:Tomcat 的主要日志配置在 $CATALINA_BASE/conf/logging.properties;访问日志在 $CATALINA_BASE/conf/server.xml 中通过 AccessLogValve 配置。默认日志目录为 $CATALINA_BASE/logs。在 Debian 上,包安装常见路径如 /var/log/tomcat//opt/tomcat/logs,具体以实际安装为准。Tomcat 内部常见日志类别包括:catalina、localhost、manager、host-manager、Access。日志级别从低到高为:FINEST < FINER < FINE < CONFIG < INFO < WARNING < SEVERE

二 配置访问日志

  • 编辑 server.xml,在 Engine/Host 内添加或修改 AccessLogValve,示例:
<Valve className="org.apache.catalina.valves.AccessLogValve"
       directory="logs"
       prefix="localhost_access_log."
       suffix=".txt"
       pattern="%h %l %u %t "%r" %s %b"
       resolveHosts="false"/>
  • 常用 pattern:
    • common%h %l %u %t %r %s %b
    • combined%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i
  • 提示:将 resolveHosts 设为 false 可避免 DNS 反向解析带来的性能开销;可按需调整 pattern 字段以记录更丰富的信息。

三 调整日志级别与输出格式

  • 调整类别日志级别(示例将 catalinalocalhost 提升到 FINE):
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.level = FINE
  • 调整控制台输出级别与格式(使用 OneLineFormatter 提升可读性):
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
  • 按需为特定包设置级别(减少噪音):
org.apache.catalina.startup.level = WARNING
  • 修改完成后重启 Tomcat 生效(如使用 systemd:sudo systemctl restart tomcat)。

四 日志轮转与保留策略

  • 方案A(推荐)—使用 logrotate 管理已落盘日志(如 catalina.out/var/log/tomcat/*.log):
sudo tee /etc/logrotate.d/tomcat >/dev/null <<'EOF'
/var/log/tomcat/*.log {
    daily
    missingok
    rotate 14
    compress
    notifempty
    create 640 tomcat adm
    sharedscripts
    postrotate
        if [ -f /var/run/tomcat.pid ]; then
            /usr/share/tomcat/bin/shutdown.sh
            sleep 5
            /usr/share/tomcat/bin/startup.sh
        fi
    endscript
}
EOF
  • 测试与生效:
sudo logrotate -f /etc/logrotate.d/tomcat
  • 方案B—使用 JULI 文件处理器轮转(在 logging.properties 中为 FileHandler 设置 limitcount):
1catalina.org.apache.juli.FileHandler.limit = 50000000
1catalina.org.apache.juli.FileHandler.count = 10
  • 说明:copytruncate 方式对 catalina.out 简单有效,但在极少数场景下可能出现日志写入短暂丢失;使用 postrotate 触发重启更稳妥,但请评估短暂停机影响。

五 常用查看与分析命令

  • 实时查看:tail -f /var/log/tomcat/catalina.out
  • 关键字过滤:grep “error” /var/log/tomcat/catalina.out
  • 结构化分析:awk 等文本处理工具
  • 集中化方案:将日志接入 ELK Stack(Elasticsearch、Logstash、Kibana)Graylog 进行检索、可视化与告警。

0