温馨提示×

Debian Tomcat日志中关键信息有哪些

小樊
46
2025-12-26 06:00:50
栏目: 智能运维

Debian Tomcat日志的关键信息

一 日志文件与存放位置

  • 常见目录
    • 系统包安装:/var/log/tomcat9/(Debian 10/11 常见为 tomcat9,具体以安装的包名为准)
    • 手动安装或自定义:$CATALINA_HOME/logs/(如 /usr/local/tomcat/logs/
  • 核心文件与作用
    • catalina.out:标准输出和标准错误(应用与容器的全部控制台输出)
    • catalina.yyyy-MM-dd.log:Tomcat 启动、停止与运行日志(不含应用控制台输出)
    • localhost.yyyy-MM-dd.log:应用初始化与未处理异常(如 Listener/Filter/Servlet 抛出的异常)
    • localhost_access_log.yyyy-MM-dd.txt:访问日志(客户端 IP、请求行、状态码、字节数等)
    • manager.log / host-manager.log:Tomcat Manager 与 Host Manager 应用日志
  • 配置入口
    • 日志行为与级别:$CATALINA_HOME/conf/logging.properties(可调整输出路径、级别、处理器等)

二 单条日志的关键字段与示例

  • 通用字段
    • 时间戳:事件发生时间(精确到毫秒)
    • 日志级别:如 SEVERE/WARNING/INFO/CONFIG/FINE/FINER/FINEST
    • 线程名:如 [main][http-nio-8080-exec-10]
    • 类名/方法:发生日志的类与具体方法
    • 日志消息:错误原因、状态、堆栈等
  • 访问日志字段
    • 客户端 IP请求时间请求行(方法、URI、协议)状态码响应字节数
  • 示例
    • 启动完成样例
      • 2023-10-23 14:23:45.123 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [1,234] milliseconds
    • 访问日志样例
      • 127.0.0.1 - - [23/Oct/2023:14:27:15 +0000] “GET /example/index.jsp HTTP/1.1” 200 1234
    • 异常样例
      • 2023-10-23 14:25:30.456 SEVERE [http-nio-8080-exec-10] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [/example] threw exception
  • 启动阶段还常见版本与环境信息(便于核对运行环境)
    • Server version: Apache Tomcat/9.0.xJVM VersionOS Name/VersionCATALINA_BASE/CATALINA_HOME

三 排查时应重点关注的线索

  • 启动与生命周期
    • 是否出现 Server startup in N ms;若缺失或异常,优先查看 catalina.outcatalina.yyyy-MM-dd.log 的异常堆栈
    • 端口冲突、类/资源缺失、配置错误等会在启动期直接暴露
  • 应用异常与未捕获错误
    • localhost.yyyy-MM-dd.log 中的 SEVERE/ERROR 与完整 异常堆栈,定位到具体的 类/方法/请求路径/上下文路径
  • 访问异常与性能
    • localhost_access_log 中的 4xx/5xx 状态码分布、慢请求(结合响应时间或后端耗时)
    • 大量 4xx 多为客户端/路由问题;5xx 多为应用异常或后端不可用
  • 管理操作审计
    • manager.log / host-manager.log 记录部署、重载、停止等敏感操作,便于追溯变更

四 常用查看与分析命令

  • 实时查看
    • tail -f /var/log/tomcat9/catalina.out
  • 按日期定位
    • less /var/log/tomcat9/catalina.2025-12-26.log
  • 关键字筛选
    • grep -i “exception” catalina.out
    • grep “SEVERE|ERROR” localhost.log*
  • 统计与排查
    • 统计访问状态码:awk ‘{print $9}’ localhost_access_log.* | sort | uniq -c
    • 查找占用端口的进程:lsof -i:8080 或 ss -ltnp | grep 8080
  • 动态调级(临时增强日志,谨慎使用)
    • conf/logging.properties 中调低相关包的级别(如 FINE/FINER),注意日志量激增与磁盘占用

0