我在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>
答案 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>
其中:
<servername>
可以是请求/主机标头<extended-log>
可以是"{referer} {user-agent}"
<cookies>
可以是" -"
或"{cookie.name}={cookie-value};"
<latency>
可以是(now - request.getTimeStamp())
有趣的是,您的系统时钟似乎在请求期间进行了调整。整整18秒!
这就是为什么这是领先理论......
request.timestamp is set when the request starts,然后是latency is computed later during the access/request logging。因为有一个负值,Jetty之外的任何东西都会重置request.timeout,或者系统时钟发生变化。