1

是否可以仅使用日志归档旧文件?

例如,我需要将日志存储为文本 14 天,然后归档?

当前使用的附加程序:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <file>../log/mylog.log</file>
  <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
    <fileNamePattern>../log/mylog.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern>
    <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
      <maxFileSize>50MB</maxFileSize>
    </timeBasedFileNamingAndTriggeringPolicy>
    <maxHistory>50</maxHistory>
  </rollingPolicy>

  <encoder>
    <pattern>%d{yyyy.MM.dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
  </encoder>

</appender>

他在更改日志文件之后立即归档文件。

slf4j-1.7.2 / logback-1.0.9

4

1 回答 1

2

滚动日志文件是 logback 中归档日志文件的别名,因此滚动意味着归档。

我需要将日志存储为文本 14 天,然后存档

然后不要对滚动策略设置最大文件限制。但是,我认为没有必要将其作为文本。据我所知,logback 将日志归档为 .gz 格式。您可以使用一堆命令直接查看 .gz 格式的日志。比如zcat、zgrep,可以直接用less来看看gz-format的日志。

您可以编写一个简单的 shell 程序将 14 天的日志从目录移动到另一个地方(这才是真正的归档)。通过设置一个 cron 作业,该 shell 每天只需要运行一次。

于 2013-02-15T03:41:39.043 回答