gpt4 book ai didi

java - Log4j - 在重负载下压缩文件中丢失日志

转载 作者:行者123 更新时间:2023-12-01 14:08:49 29 4
gpt4 key购买 nike

我们在大量日志记录下遇到 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>

属性(property)<param name="CompressionUseBlockingQueue" value="true"/>添加是为了防止日志丢失。我们认为(现在仍然如此),当文件(当​​有 5 个临时文件时)被合并和压缩时,日志会丢失。它们可能会以某种方式被覆盖。然而,这个属性并没有发挥作用。

我不确定在哪里寻找问题,或者如何更改配置,这样日志就不会丢失或被覆盖。

有什么建议我们可以尝试吗?

谢谢

最佳答案

您可以尝试将日志的副本创建到某个临时位置(或者在同一位置,如果空间不受限制);然后将其压缩。

可能会发生压缩发生的时间点,记录器缓冲区正在尝试写回并失败。由于 log4j 默默地失败,因此很难跟踪此类错误。

关于java - Log4j - 在重负载下压缩文件中丢失日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693574/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com