0

我正在使用 Logback 来管理服务器上的日志。我用RollingFileAppender一个TimeBasedRollingPolicy

<appender name="file-appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>/server/logs/error.log</file>
    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <pattern>${defaultPattern}</pattern>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <!-- hourly rollover -->
        <fileNamePattern>/server/logs/history/%d{yyyy-MM-dd,aux}/error.%d{yyyy-MM-dd_HH}.log.zip</fileNamePattern>
        <maxHistory>168</maxHistory> <!--7Days-->
        <totalSizeCap>1GB</totalSizeCap>
    </rollingPolicy>
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>ERROR</level>
    </filter>    
</appender>

我设置maxHistory为 168 以将日志保留 7 天(每小时一个文件,每天 24 个文件 = 168 个文件)。

查看history文件夹,我希望找到过去 7 天的子目录和每个子目录中的 24 个压缩日志文件(除了当前的和最旧的)。

但是大约 4 个月前有 76 个文件夹。有几天没有文件夹,许多文件夹不包含每小时的 zip 文件。history但树中总共有 1000 多个 zip 文件。

所以有某种清理,但似乎有些文件很晚才被清理。我的配置有什么问题?我正在使用版本 logback-classic-1.2.3。

4

1 回答 1

1

我还没有以这种方式使用滚动策略。我会这样实现它:

<fileNamePattern>/server/logs/history/error.%d{yyyy-MM-dd_HH}.log.zip</fileNamePattern>

另请参阅此线程

于 2018-09-10T11:06:38.930 回答