首页主机资讯centos tomcat日志中如何查看响应时间

centos tomcat日志中如何查看响应时间

时间2025-11-14 12:22:04发布访客分类主机资讯浏览373
导读:在 CentOS 的 Tomcat 中查看请求响应时间 一 准备与定位日志文件 日志默认位于 $CATALINA_HOME/logs,常见文件: catalina.out:启动与应用的标准输出/错误。 localhost_access_...

在 CentOS 的 Tomcat 中查看请求响应时间

一 准备与定位日志文件

  • 日志默认位于 $CATALINA_HOME/logs,常见文件:
    • catalina.out:启动与应用的标准输出/错误
    • localhost_access_log.yyyy-MM-dd.txt访问日志(是否记录响应时间取决于配置)。
  • 常用查看方式:
    • 实时查看:tail -f $CATALINA_HOME/logs/catalina.out
    • 实时查看访问日志:tail -f $CATALINA_HOME/logs/localhost_access_log.*.txt
    • 如以 systemd 管理:journalctl -u tomcat -f
  • 若访问日志尚未输出响应时间,需按下方步骤开启对应字段。

二 配置访问日志输出响应时间

  • 编辑 $CATALINA_HOME/conf/server.xml,在 内添加或修改 AccessLogValve,通过 pattern 输出耗时字段:
    • 记录耗时(秒,浮点):%T
    • 记录耗时(毫秒,整数):%D
    • 示例(combined 格式并追加耗时毫秒):
      <
      Valve className="org.apache.catalina.valves.AccessLogValve"
             directory="logs"
             prefix="localhost_access_log."
             suffix=".txt"
             pattern="%h %l %u %t "%r" %s %b %{
      Referer}
      i %{
      User-Agent}
          i %D"
             resolveHosts="false"/>
      
      
    • 说明:
      • %T 单位为%D 单位为毫秒;二者可同时输出。
      • 修改后需重启 Tomcat:sudo systemctl restart tomcat
      • 常见 pattern 占位符含义可参考官方文档与常用配置说明。

三 常用命令快速查看与分析

  • 实时查看带耗时的访问日志(毫秒):
    • tail -f $CATALINA_HOME/logs/localhost_access_log.*.txt | awk '{ print $NF} '
  • Top N 最慢请求(按毫秒耗时,取前10):
    • awk '{ print $NF, $0} ' $CATALINA_HOME/logs/localhost_access_log.*.txt | sort -nr | head -10
  • 统计平均耗时(秒级,保留两位小数):
    • awk '{ sum+=$NF; n++; } END { printf "avg=%.2f ms\n", sum/n} ' $CATALINA_HOME/logs/localhost_access_log.*.txt
  • 按 URL 聚合统计平均耗时(需按实际日志列号调整 $NF 与 $7 等字段):
    • awk '{ url=$7; sum[url]+=$NF; cnt[url]++} END { for(u in sum) printf "%.2f ms\t%s\n", sum[u]/cnt[u], u} ' $CATALINA_HOME/logs/localhost_access_log.*.txt | sort -nr | head
  • 说明:上述示例默认耗时在最后一列(即 %D);如使用 %T(秒),可将阈值与统计单位相应调整为秒。

四 常见问题与排查

  • 访问日志没有耗时字段:确认 AccessLogValve 已配置并包含 %T%D,修改后重启 Tomcat 生效。
  • 日志过大与轮转:
    • 使用 logrotate 管理 catalina.out,如保留最近 7 天并压缩:
      /usr/local/tomcat/logs/catalina.out {
      
        daily
        rotate 7
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
      }
          
      
    • 访问日志可按时间切割(如按小时):在 AccessLogValve 上设置 fileDateFormat="yyyy-MM-dd.HH"
  • 通过 systemd 运行的 Tomcat,也可用 journalctl -u tomcat -f 查看服务日志,但响应时间通常仍以访问日志为准。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos tomcat日志中如何查看响应时间
本文地址: https://pptw.com/jishu/747903.html
centos tomcat日志中如何查看请求 centos tomcat日志中如何识别异常

游客 回复需填写必要信息