apache - Log4j2 - 压缩老化的翻转文件,保持最后一个 X 文件未压缩

标签 apache logging compression log4j2

如何仅压缩较旧的滚动文件而不是每次滚动时都进行压缩? (现在是每天)。以下配置仅每天滚动并在 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,以便它在删除之前压缩所有内容。您可以在以下位置找到源代码:

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

关于apache - Log4j2 - 压缩老化的翻转文件,保持最后一个 X 文件未压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38976824/

相关文章:

apache - 使用 apache 进行动态主机名和端口代理

apache - 自定义 mod_jk 转发

android - 获取应用程序崩溃和 ANR 的日志?

java - Log4j - 修剪日志中的字段值

javascript - 有没有办法用我自己的方法压缩javascript?

android - 从android中的存档中解压单个文件

mysql - 使用 Snow Leopard 的 Apache 时出现 mysqlnd 错误

apache - Java 重定向 + 域

java - 在 weblogic 上登录 web 服务

javascript - 有没有办法通过代码将一个长字符串压缩成一个较小的字符串,反之亦然?