【问题标题】:Tomcat HTTP Access log has a delay in writing to the fileTomcat HTTP 访问日志写入文件有延迟
【发布时间】:2015-09-15 12:39:27
【问题描述】:

在 tomcat http 访问日志中,阀门需要一些时间才能写入文件。请注意,我有 org.apache.catalina.valves.AccessLogValve 的默认配置。有什么办法可以改善延迟吗?造成这种延迟的主要原因是什么

【问题讨论】:

    标签: tomcat logging tomcat-valve


    【解决方案1】:

    我找到了答案。 您可以通过禁用缓冲来改善延迟。标志“缓冲”确定日志记录是否将被缓冲。如果设置为 false,则每次请求后都会写入访问日志。默认值:真。因此,添加 BufferedLogs="false" 将减少写入日志文件的延迟。另一个属性是 backgroundProcessorDelay。如果未指定,则此属性的默认值为 10,表示延迟 10 秒。 因此,通过将其设置为较低的值,您可以改善将 http-access 日志写入文件的延迟。

    【讨论】:

    【解决方案2】:

    主要原因是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 &quot;%r&quot; %s %b" prefix="localhost_access_log." suffix=".txt"/>
    

    通过将 buffered 属性设置为 false ,我们可以立即获取访问信息。 doc of AccessLogValve

    【讨论】:

      猜你喜欢
      • 2015-02-17
      • 1970-01-01
      • 2021-11-26
      • 2017-09-25
      • 2018-01-14
      • 2014-08-31
      • 1970-01-01
      • 2017-05-17
      • 1970-01-01
      相关资源
      最近更新 更多