RollingFileAppender 还删除早于某个日期的文件

Alp*_*ure 5 java log4j logback

是否有流行的 Java 日志框架支持滚动文件附加程序,我可以将其配置为每天滚动,并删除超过几天的日志文件?我知道我可以使用滚动文件附加程序和 cron,但想知道是否有人知道可以同时执行这两种操作的附加程序。

and*_*vin 3

Logback 的经典 RollingFileAppender 提供了这一点以及更多功能。手册中的示例配置(http://logback.qos.ch/manual/appenders.html#onRollingPolicies

 <configuration>
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logFile.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
      <!-- daily rollover -->
      <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>

      <!-- keep 30 days' worth of history -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder>
      <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
    </encoder>
  </appender> 

  <root level="DEBUG">
    <appender-ref ref="FILE" />
  </root>
</configuration>
Run Code Online (Sandbox Code Playgroud)

这提供了每日滚动和 30 天的历史记录。将其放置在名为 logback.xml 的文件中,或者将测试树放置在 logback-test.xml 中,然后将其放置在类路径中。