如何仅压缩较旧的滚动文件而不是每次滚动时都进行压缩? (现在是每天)。以下配置仅每天滚动并在 60 天后删除压缩文件,但每天都会压缩。
如果我必须调查过去 [X] 天的文件,我不想使用工具来解压缩它们...
<RollingRandomAccessFile name="file" fileName="${baseDir}/app-trace.log"
filePattern="${baseDir}/app-trace-%d{yyyy-MM-dd}.log.gz"
immediateFlush="false" append="true">
<PatternLayout pattern="%d %-5p [%t] %c - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
</Policies>
<DefaultRolloverStrategy max="91">
<Delete basePath="${baseDir}" maxDepth="2">
<IfFileName glob="*/app-trace*.log.gz">
<IfLastModified age="60d">
<IfAny>
<IfAccumulatedFileSize exceeds="1 GB"/>
<IfAccumulatedFileCount exceeds="10"/>
</IfAny>
</IfLastModified>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingRandomAccessFile>
最佳答案
我遇到了类似的问题,最终我自己实现了DeleteAction,并将其附加到DefaultRolloverStrategy,以便它在删除之前压缩所有内容。您可以在以下位置找到源代码:
关于apache - Log4j2 - 压缩老化的翻转文件,保持最后一个 X 文件未压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976824/