在tomcat中,http访问日志阀需要一些时间来写入文件。请注意我有org.apache.catalina.valves.AccessLogValve的默认配置。有没有改善延迟?这种延迟的主要原因是什么
答案 0 :(得分:4)
我找到了答案。 您可以通过禁用缓冲来改善延迟。 Flag"缓冲"确定是否将缓冲日志记录。如果设置为false,则将在每次请求后写入访问日志记录。默认值:true。因此,添加BufferedLogs =" false"将减少写入日志文件的延迟。另一个属性是backgroundProcessorDelay。如果未指定,则此属性的默认值为10,表示延迟10秒。 因此,通过将其设置为较低的值,可以改善将http访问日志写入文件的延迟。
答案 1 :(得分:1)
主要原因是tomcat缓存了日志消息。我们可以通过更改记录器的默认行为来禁用缓冲区。我们可以在$ TOMCAT_HOME / conf / server.xml中找到 tomcat版本:tomcat-7.0.61
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" buffered="false" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
通过将buffered属性设置为false,我们可以立即获取访问信息。 doc of AccessLogValve