首页 > 解决方案 > jetty 10 日志记录中请求所花费的时间

问题描述

这是配置码头日志记录的后续问题。是否有任何属性给出请求所花费的时间?

123.4.5.6 - - [27/Aug/2004:10:16:17 +0000] "GET /jetty/tut/XmlConfiguration.html HTTP/1.1" 200 76793 "http://localhost:8080/jetty/tut/logging .html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.6) Gecko/20040614 Firefox/0.8"

上面的参数已经在configure jetty logging中定义了。但我没有看到任何参数可以为我们提供请求所花费的时间。

注意 - 它曾经在 jetty9 中被称为日志延迟 - jetty9 自定义日志记录

标签: javaeclipsejettyjetty-10

解决方案


您将需要更改格式字符串CustomRequestLog以包含%T百分比代码。这在用于CustomRequestLog. (见https://javadoc.io/doc/org.eclipse.jetty/jetty-server/latest/org.eclipse.jetty.server/org/eclipse/jetty/server/CustomRequestLog.html

  • %T - 处理请求所花费的时间,以秒为单位。
  • %{UNIT}T - 处理请求所用的时间,以 UNIT 给出的时间单位表示。有效单位是 ms(毫秒)、us(微秒)和 s(秒)。使用 s 给出与 %T 相同的结果,但没有任何格式;使用 us 得到与 %D 相同的结果。

如果您不使用CustomRequestLog和扩展RequestLog自己,您可以通过以下方式自己获得延迟:

long latency = System.currentTimeMillis() - request.getTimeStamp();

推荐阅读