8

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

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

4

3 回答 3

6

打电话setLogLatency(true)_NCSARequestLog

于 2011-02-25T00:36:16.990 回答
2

关于如何通过配置启用响应时间日志的详细说明如下:Monitoring latency in Jetty request log

概括:

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

找到 <Ref id="RequestLog"> 部分。

将 Set name=”logLatency”>true 添加到 setter 列表。

保存并重新启动 Jetty。

于 2013-06-25T19:21:10.247 回答
0

使用 logback access 1.1.0 或更高版本,您可以使用%elapsedTime转换字来获取以 ms 为单位的响应时间。来自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
于 2018-06-02T23:34:08.167 回答