我们在大量日志记录下遇到 log4j 日志记录问题。 我们会定期丢失文件中的一些日志(每 1 小时约 4-20 分钟),这些日志会被推出和压缩。
配置:
<appender name="MY_LOG" class="org.apache.log4j.appender.TimeAndSizeRollingAppender">
<param name="File" value="../logs/mylog.log" />
<param name="DatePattern" value=".yyyy-MM-dd"/>
<param name="MaxFileSize" value="40MB"/>
<param name="MaxRollFileCount" value="100"/>
<param name="ScavengeInterval" value="300000"/>
<param name="encoding" value="UTF-8" />
<param name="CompressionAlgorithm" value="ZIP"/>
<param name="CompressionMinQueueSize" value="5"/>
<param name="CompressionThreadPriority" value="1"/>
<param name="CompressionLevel" value="1"/>
<param name="CompressionUseBlockingQueue" value="true"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %22.22t| %22.22c{1}| %m%n"/>
</layout>
</appender>
添加属性<param name="CompressionUseBlockingQueue" value="true"/>
是为了防止日志丢失。我们认为(现在仍然如此)当文件(当有 5 个临时文件时)被合并和压缩时,日志会丢失。他们可能会以某种方式被覆盖。但是,此属性不起作用。
我不确定在哪里寻找问题,或者如何更改配置,因此日志不会丢失或被覆盖。
有什么建议我们可以尝试吗?
谢谢