每日回滚配置,每月旋转和压缩

Ant*_*ele 5 logback

是否可以设置logback的配置来每天创建一个.log文件并保留30个文件,然后将这些文件压缩为一个zip文件,然后再次开始创建.log?

gly*_*ing 4

你可以 ...

每天创建一个.log文件并保留30个文件

...使用 aRollingFileAppender和 a TimeBasedRollingPolicy。这是一个例子:

  <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>
      <!-- retain 30 days logs -->
      <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder>
      <pattern>...</pattern>
    </encoder>
  </appender>
Run Code Online (Sandbox Code Playgroud)

但是没有 Logback 附加程序可以执行以下操作:

将文件压缩为一个 zip 并再次开始创建 .log

为此你可以:

或者

  • 在 Logback 之外处理这个问题;您正在处理文件系统上的文件,因此运行 shell 脚本的 cron 作业可以找到过去n天的所有文件并将它们压缩然后删除它们。