【问题标题】:How to enable response time logging in Jetty 7如何在 Jetty 7 中启用响应时间记录
【发布时间】:2011-02-23 19:12:08
【问题描述】:

Apache 和 Tomcat 都可以轻松地将响应超时记录到服务器访问日志(使用 %D 模式),但我无法在 Jetty 中找到任何等效的支持,无论是默认的 NCSARequestLog 还是使用 logback-access(我首选的日志记录设置)。

有没有办法让 Jetty 记录这些时间?我可以看到可以使用某种自定义处理程序来收集这些信息并将其提供给日志处理程序,但我希望像 StatisticsHandler 这样的东西可以为我做这件事,因为它显然已经在跟踪这些信息生成其汇总统计信息。

【问题讨论】:

    标签: jetty logback


    【解决方案1】:

    拨打setLogLatency(true)NCSARequestLog

    【讨论】:

    • 太好了,不知道我怎么错过了那个。是否有使用 logback-access 记录响应时间的等效方法? NCSARequestLog 没有提供我们一些更高级用例所需的日志格式和附加机制的广度。
    【解决方案2】:

    关于如何通过配置启用响应时间记录的详细说明在这里:Monitoring latency in Jetty request log

    总结:

    打开 [JETTY HOME]/etc/jetty.xml。

    找到 部分。

    将 Set name=”logLatency”>true 添加到设置器列表。

    保存并重新启动 Jetty。

    【讨论】:

      【解决方案3】:

      使用 logback access 1.1.0 或更高版本,您可以使用%elapsedTime 转换字来获取以毫秒为单位的响应时间。来自https://logback.qos.ch/manual/layouts.html

      D / elapsedTime 服务请求所花费的时间,以毫秒为单位。 T / elapsedSeconds 服务请求所花费的时间,以秒为单位。

      例如,使用:

      <pattern>%h %l %u [%t] "%r" %s %b "%i{Referer}" "%i{User-Agent}" %elapsedTime{}ms</pattern>
      

      将输出:

      0:0:0:0:0:0:0:1 - - [03/Jun/2018:08:07:12 +1200] "GET /actuator/health HTTP/1.1" 200 15 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36" 3ms
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-23
        • 2012-09-15
        • 1970-01-01
        相关资源
        最近更新 更多