【问题标题】:Logback configuration daily rotate and zip monthlyLogback 配置每天轮换和每月压缩
【发布时间】:2017-10-02 06:51:53
【问题描述】:

是否可以将logback的配置设置为每天创建一个.log文件并保留30个文件,然后将文件压缩到一个zip中并重新开始创建.log?

【问题讨论】:

    标签: logback


    【解决方案1】:

    你可以...

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

    ... 使用 RollingFileAppenderTimeBasedRollingPolicy。这是一个例子:

      <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>
    

    但是没有 Logback appender 会这样做:

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

    为此,您可以:

    • 编写自己的附加程序(in the docs 上的大量详细信息)

    或者

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

    【讨论】:

    • 谢谢。我已经找到了相同的解决方案。我想知道是否有一种方法可以只使用 logback 配置。我正在考虑使用 FixedWindowRollingPolicy 但不适合我的情况。谢谢你的回答。
    • 请注意,&lt;maxHistory&gt; 属性是可选的,因此可以省略。有关更多详细信息,您可以参考logback.qos.ch/manual/appenders.html#TimeBasedRollingPolicy 的文档
    • 为了清楚起见:ch.qos.logback.core.rolling.RollingFileAppender 扩展 ch.qos.logback.core.FileAppender
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-24
    • 2017-09-26
    • 1970-01-01
    • 2019-02-20
    • 1970-01-01
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多