【发布时间】:2017-04-06 22:41:33
【问题描述】:
我正在使用 Undertow + JBoss,并且有一个问题。标准时间工具将根据AccessLogHandler 上的javadoc 记录日期和时间。但是,我找不到任何信息来表明这是收到请求的时间,还是完成请求的时间。
我看了一下DateTimeAttribute,它似乎是在调用 readAttribute() 时动态生成的统计信息。该方法在 undertow 核心代码中被调用了几十次,但我想相信此方法是请求/响应流中的主要用途(在 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();
}
}
}
因此,如果我正确理解了这段代码,那么这个时间戳似乎是在请求完成之后生成的。任何人都可以确认是这种情况吗?
【问题讨论】: