我正在与Undertow + JBoss合作,并提出了一个问题。标准时间工具将根据AccessLogHandler上的javadoc记录日期和时间。但是,我无法找到任何信息来表明这是收到请求的时间,还是请求完成的时间。
我看了DateTimeAttribute,看来当调用readAttribute()时它将是一个动态生成的统计信息。在underow核心代码中,该方法被称为几十次,但我想相信这种方法是请求/响应流程中的主要用途(在AccessLogHandler中找到):
private class AccessLogCompletionListener implements ExchangeCompletionListener {
@Override
public void exchangeEvent(final HttpServerExchange exchange, final NextListener nextListener) {
try {
if(predicate == null || predicate.resolve(exchange)) {
accessLogReceiver.logMessage(tokens.readAttribute(exchange));
}
} finally {
nextListener.proceed();
}
}
}
因此,如果我正确理解此代码,那么在请求完成后,似乎会生成此时间戳。任何人都可以确认是这种情况吗?
答案 0 :(得分:1)
完成时间。你可以通过注意你的PC时钟来做这个测试,做一个很长的请求,例如通过在servlet或其他UI代码中设置断点,执行Thread.sleep(30000)
,然后在访问日志中查看时间戳。