Apache和Tomcat都可以很容易地将响应时间记录到服务器访问日志(使用%D模式),但我无法在Jetty中找到任何等效支持,使用默认的{{1}或者使用logback-access(我首选的日志设置)。
有没有办法让Jetty记录这些时间?我可以看到可以使用某种自定义处理程序来收集这些信息并将其提供给日志记录处理程序,但我希望像NCSARequestLog
这样的东西可以为我做,因为它显然已经跟踪了这个用于生成其聚合统计数据的信息。
答案 0 :(得分:6)
在setLogLatency(true)
NCSARequestLog
答案 1 :(得分:2)
有关如何通过配置启用响应时间记录的详细说明,请访问:Monitoring latency in Jetty request log
要点:
打开[JETTY HOME] /etc/jetty.xml。
找到< Ref id =“RequestLog”>部分。
将Set name =“logLatency”> true添加到setter list。
保存并重新启动Jetty。
答案 2 :(得分:0)
使用logback access 1.1.0或更高版本,您可以使用%elapsedTime
转换字来获取以毫秒为单位的响应时间。来自https://logback.qos.ch/manual/layouts.html:
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