如何在Jetty 7中启用响应时间日志记录

如何在Jetty 7中启用响应时间日志记录,jetty,logback,Jetty,Logback,Apache和Tomcat都可以轻松地将响应超时记录到服务器访问日志中(使用%D模式),但我在Jetty中找不到任何等效的支持,无论是使用默认的NCSARequestLog还是使用logback访问(我首选的日志设置) 有没有办法让Jetty记录这些时间?我认为可以使用某种自定义处理程序来收集这些信息,并将其提供给日志处理程序,但我希望类似于StatisticsHandler的东西可以为我做到这一点,因为它显然已经在跟踪这些信息以生成其聚合统计数据。CallsetLogLatency(true)

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


有没有办法让Jetty记录这些时间?我认为可以使用某种自定义处理程序来收集这些信息,并将其提供给日志处理程序,但我希望类似于
StatisticsHandler
的东西可以为我做到这一点,因为它显然已经在跟踪这些信息以生成其聚合统计数据。

Call
setLogLatency(true)
NCSARequestLog

中,有关如何通过配置启用响应时间日志记录的详细说明如下:

总结:

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

找到该部分

将Set name=“logLatency”>添加到setter列表中

保存它并重新启动Jetty


使用logback access 1.1.0或更高版本,您可以使用
%elapsedTime
转换字从以下位置获取以毫秒为单位的响应时间:


太好了,不知道我怎么会错过那一次。使用logback访问记录响应时间是否有一种等效的方法
NCSARequestLog
没有提供一些更高级用例所需的广泛的日志格式和附加机制。 D / elapsedTime The time taken to serve the request, in milliseconds. T / elapsedSeconds The time taken to serve the request, in seconds.
<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