Tomcat 日志:%D 和 %F 有什么区别

Min*_*nky 6 java logging tomcat spring-mvc request

我正在使用 tomcat log 来记录访问信息,官方文档中 %D 和 %F 的定义是

%D - 处理请求所花费的时间,以毫秒为单位

%F - 提交响应所花费的时间,以毫秒为单位

我对这两个定义感到困惑,%F 的时间是否包括 %D 的时间?

提前致谢!

rin*_*nce 8

%D 包括 %F 加上任何网络时间

API Doc https://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/valves/AccessLogValve.html 中有更多信息

AccessLogValve.ElapsedTimeElement 处理请求所用的写入时间 - %D, %T

AccessLogValve.FirstByteTimeElement 写入第一个字节之前的写入时间(提交时间),以毫秒为单位 - %F

在 %F 的 Bugzilla 条目中,它说 https://bz.apache.org/bugzilla/show_bug.cgi?id=55102

Tomcat 的 AccessLogValve 能够报告使用 %D 发送整个请求所花费的时间。这是总处理时间,可能受网络状况影响。能够记录服务器准备响应并将第一个内容发送到客户端所花费的时间有时很有用。

附件是一个记录响应提交时间的补丁,然后允许使用“%F”模式(与用于 HTTPD 的 mod-log-firstbyte 模块使用的相同)在访问日志中报告该时间。