【问题标题】:Log4j2 - Compressing aged Rollover Files, keep last X file uncompressedLog4j2 - 压缩老化的翻转文件,保持最后一个 X 文件未压缩
【发布时间】:2016-08-16 13:54:18
【问题描述】:

如何只压缩较旧的滚动文件,而不是每次滚动? (现在是每天)。以下配置仅每天滚动,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>

【问题讨论】:

    标签: apache logging compression log4j2


    【解决方案1】:

    我遇到了类似的问题,最后我自己实现了 DeleteAction,并将其附加到 DefaultRolloverStrategy,以便在删除之前压缩所有内容。您可以在以下位置找到源代码:

    https://github.com/lqbweb/log4j2-ZipDelete

    【讨论】:

    • 你好@lqbweb。我正在尝试使用您的 ZipDeleteAction,但我不清楚应该如何针对 RolloingFileApender 中的 filePattern 设置 zipPattern 参数。是否应该调整 filePattern(例如省略 %i 或 %d)以使文件名与 ZipDeleteAction 的输入相匹配?整个 配置部分的示例将非常有帮助。
    猜你喜欢
    • 2014-11-06
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2013-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多