Jetty服务器访问日志中的负响应时间

时间:2013-12-09 18:31:35

标签: jetty

我在Jetty上运行,我的访问日志配置为显示响应时间。

今天我注意到请求的数量非常少(600K中约有30个)的响应时间为负,我想知道是否有人遇到过这样的行为。

这是我的回复示例: < [IP]> - - < [date]> " POST< [url]> HTTP / 1.0" 201 461 -18096

如果您想在访问日志中识别这一点 - 这是我使用的grep命令:

grep --color" - [0-9] [0-9] *" server-access.2013_12_09.log

Jetty版本: 8.1.8

在jetty.xml中设置:

<New id="request-log-handler" class="org.eclipse.jetty.server.handler.RequestLogHandler">
<Set name="requestLog">
  <New class="org.eclipse.jetty.server.NCSARequestLog">
    <Arg>
      <Property name="logging.httpAccessLog" default="logs/app-access.yyyy_mm_dd.log" />
    </Arg>
    <Set name="retainDays">
      <Property name="logging.accessLogRetentionInDays" default="10" />
    </Set>
    <Set name="append">
      <Property name="logging.httpAccessLogAppend" default="true" />
    </Set>
    <!-- logs referer and user agent -->
    <Set name="extended">
      <Property name="logging.httpAccessLogExtended" default="false" />
    </Set>
    <!-- response time -->
    <Set name="logLatency">
      <Property name="logging.httpAccessLogLatency" default="true" />
    </Set>
  </New>
</Set>

1 个答案:

答案 0 :(得分:1)

使用Jetty 9.1.0。

键:

  • <name> =行上的可选/可配置条目
  • {name} =强制性条目

<servername> {X-Forwarded-For||remote-addr} - {authentication/principal/name} [{request-timestamp}] "{method} {uri} {protocol}" {response-status-code} {response-content-length} <extended-log> <cookies> <latency>

其中:

有趣的是,您的系统时钟似乎在请求期间进行了调整。整整18秒!

这就是为什么这是领先理论......

request.timestamp is set when the request starts,然后是latency is computed later during the access/request logging。因为有一个负值,Jetty之外的任何东西都会重置request.timeout,或者系统时钟发生变化。