Logback不会正确清理文件

问题描述 投票:0回答:1

我使用Logback来管理服务器上的日志。我使用RollingFileAppenderTimeBasedRollingPolicy

<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以保留日志七天(每小时一个文件,每天24个文件= 168个文件)。

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

但是有大约76个文件夹可以追溯到4个月左右。有些日子里没有文件夹,许多文件夹每小时都不包含zip文件。但总的来说,history树中有超过1000个zip文件。

所以有一些清理,但似乎有些文件很晚就清理干净了。我的配置有什么问题?我使用的是版本logback-classic-1.2.3。

java logging logback rollingfileappender logback-classic
1个回答
1
投票

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

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

另见this thread

© www.soinside.com 2019 - 2024. All rights reserved.