Ubuntu Tomcat日志关键信息有哪些
导读:Ubuntu Tomcat日志的关键信息与定位要点 一 日志文件与作用 catalina.out:标准输出与错误日志,覆盖 Tomcat 启动、运行、关闭 全过程,以及应用打印到控制台的日志,是排查启动失败、异常堆栈、类加载与JVM问题的...
Ubuntu Tomcat日志的关键信息与定位要点
一 日志文件与作用
- catalina.out:标准输出与错误日志,覆盖 Tomcat 启动、运行、关闭 全过程,以及应用打印到控制台的日志,是排查启动失败、异常堆栈、类加载与JVM问题的首选文件。
- localhost..log:应用初始化及未处理异常(如 ServletContextListener 报错、部署失败)的主要来源。
- localhost_access_log..txt:访问日志,记录每一次 HTTP 请求的 时间、来源、方法、路径、状态码、耗时、字节数 等,用于分析流量、错误率与性能。
- manager..log / host-manager..log:对应管理应用的专用日志,排查管理操作(部署、取消部署、用户权限)问题。
- 日志目录常见位置:/var/log/tomcat、/opt/tomcat/logs 或 $CATALINA_HOME/logs;若不确定,可在 server.xml 的 AccessLogValve 中查看 directory/prefix 配置。
- 快速查看与过滤:
- 实时查看:
tail -f $CATALINA_HOME/logs/catalina.out - 过滤错误:
tail -f $CATALINA_HOME/logs/catalina.out | grep -i error - 访问日志定位异常:统计 4xx/5xx 比例与时间分布,例如:
awk '$9 ~ /^[45]/ { print $4,$9} ' localhost_access_log.* | sort | uniq -c
以上文件与作用、目录与命令为 Ubuntu 上 Tomcat 的通用实践。
- 实时查看:
二 访问日志字段与常见模式
- 常用字段含义(按需选择,组合成 pattern):
- %h 远程主机名或IP、%l 远程逻辑用户名(恒为-)、%u 已认证远程用户
- %t 日期时间、%r 请求第一行(方法+URL+协议)
- %s 响应状态码、%b/%B 响应字节数(不含/含HTTP头,0字节时 b 为“-”)
- %D/%T 处理耗时(毫秒/秒)、%m 请求方法、%p 本地端口
- %q 查询串(含“?”)、%U 请求URL路径、%v 本地服务器名
- %I 当前请求线程名(便于与线程转储/监控对齐)
- 常用 pattern:
- common:
%h %l %u %t "%r" %s %b - combined:
%h %l %u %t "%r" %s %b "%{ Referer} i" "%{ User-Agent} i"
- common:
- 扩展:可记录请求头、Cookie、Session 等,例如
%{ Referer} i、%{ User-Agent} i、%{ JSESSIONID} c。 - 重要提示:标准访问日志默认不记录 POST 请求体;如需记录,可通过自定义 Valve/Filter 将参数写入日志(示例 pattern 中增加
[%{ postdata} r]的做法,需自行实现或引入过滤器)。
三 错误码与异常在日志中的含义
- 常见 HTTP 状态码与排查要点:
- 4xx 客户端错误:
- 400 请求语法错误;401 未认证;403 无权限;404 资源不存在(检查部署与 URL);
- 405 方法不允许(如用 GET 访问仅支持 POST 的接口);409 冲突;429 请求过多。
- 5xx 服务器错误:
- 500 服务器内部错误(多见应用异常、配置错误);501 不支持的功能;
- 502 网关/代理收到无效响应;503 服务暂不可用(过载/维护);504 网关超时。
- 4xx 客户端错误:
- 典型异常关键词:
- NoClassDefFoundError(依赖缺失)、OutOfMemoryError(内存不足)、ClassCastException、SQLException 等,通常伴随堆栈出现在 catalina.out 或 localhost..log,需结合时间点与请求上下文定位。
四 日志级别与输出控制
- 日志级别(由高到低):SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST。在 conf/logging.properties 中为不同 Logger(如 org.apache.catalina、应用包名)设置级别,以控制输出细粒度;排查问题时可临时提升为 FINE/FINER 获取更详细日志。
- 访问日志行为控制(server.xml 的 AccessLogValve):
- directory/prefix/suffix 决定日志路径与文件名;
- pattern 定义输出字段;
- resolveHosts 设为 false 可避免 DNS 反查提升性能;
- rotatable 控制是否按时间滚动(如按天);
- fileDateFormat 可自定义时间格式(如按小时:
yyyy-MM-dd.HH)。
五 快速定位与排查命令清单
- 定位目录与配置:确认 $CATALINA_HOME/logs 或 /var/log/tomcat;在 server.xml 检查 AccessLogValve 的 directory/prefix 与 pattern。
- 实时观察:
- 启动与异常:
tail -f catalina.out - 访问异常:
tail -f localhost_access_log.* | awk '$9 ~ /^[45]/ { print $0} '
- 启动与异常:
- 错误聚集与时段分析:
- 按小时统计 5xx:
awk -F: '{ print $2":"$3} ' localhost_access_log.* | sort | uniq -c | sort -nr | head - 导出错误行:
grep -i "exception\|error" catalina.out > errors.log
- 按小时统计 5xx:
- 连接与性能:结合 top/htop、vmstat、iostat 观察 CPU/内存/IO;必要时调整 JVM 参数、连接池 与 超时 配置,并配合 JVisualVM/JConsole 或 Prometheus+Grafana 做持续监控。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Tomcat日志关键信息有哪些
本文地址: https://pptw.com/jishu/761049.html
