有什么办法可以在压缩旋转日志文件之前添加延迟

时间:2018-08-14 11:13:13

标签: java logback log-rotation logback-classic

在压缩旋转的日志文件之前,我需要添加一些单位时间的延迟。我正在使用logback-core,我的xml如下所示:-

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">

        <fileNamePattern>app-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
        <maxFileSize>1GB</maxFileSize>
        <maxHistory>7</maxHistory>
        <totalSizeCap>7GB</totalSizeCap>
    </rollingPolicy>
    <encoder>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} ​%-5level ​%logger{35}- ​%msg%n</pattern>
    </encoder>
</appender>
<root level="INFO">
    <appender-ref ref="file"/>
</root>
</configuration>

有什么办法吗? 我已经看到了扩展滚动策略类here的方法,但是不确定类似的方法是否可以在这里工作。

1 个答案:

答案 0 :(得分:0)

我已经通过Cron应用程序解决了这个问题。

首先,我将logback配置更新为不进行压缩,而只是旋转日志。然后,我的Cron在特定的时间运行,并收集所有已旋转的日志,然后将其传递到下一个执行压缩部分的模块。