Java 在Logback中基于时间的文件夹删除

Java 在Logback中基于时间的文件夹删除,java,slf4j,logback,Java,Slf4j,Logback,我最近被一个要求打动了,即在一段时间后删除由logback创建的日志文件夹 比如说, 如果我将其配置为7天,则所有日志文件夹的日期均为7天以上 天将被删除 这里需要注意的是,我已经在使用TimebasedFileName和TriggeringPolicy附加器 我的示例配置示例如下所示: <appender name="DC_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender"> <

我最近被一个要求打动了,即在一段时间后删除由logback创建的日志文件夹

比如说,

如果我将其配置为7天,则所有日志文件夹的日期均为7天以上 天将被删除

这里需要注意的是,我已经在使用TimebasedFileName和TriggeringPolicy附加器

我的示例配置示例如下所示:

    <appender name="DC_DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">

        <encoder>
            <pattern>[%d{HH:mm:ss.SSS}] [%thread] [%-5level] [%logger : %L] => %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- rollover daily -->
            <fileNamePattern>C:/DataConsolidation/Logs/%d{dd-MM-yyyy}/Debug/Debug.%i.txt</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy
                class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <maxFileSize>20MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
        </rollingPolicy>
    </appender>

[%d{HH:mm:ss.SSS}][%thread][%-5level][%logger:%L]=>%msg%n
C:/DataConsolidation/Logs/%d{dd-MM-yyyy}/Debug/Debug.%i.txt
20MB
我更倾向于使用一些开箱即用的解决方案,但对于定制开发,我会毫不犹豫


这里有任何帮助吗?

您可以尝试TimeBasedRollingPolicy的maxHistory,并进行每日滚动:

可选的maxHistory属性控制最大的 存档要保留的文件,删除旧文件。例如,如果你 指定每月滚动,并将maxHistory设置为6,然后设置为6个月 将保留超过6个月的存档文件,并删除其中的旧文件。 注意:当旧的归档日志文件被删除时,所有 为日志文件归档而创建的文件将按以下方式删除: 合适