是否可以仅使用日志存档旧文件?
例如,我需要将日志存储为文本14天,然后存档?
目前使用的appender:
<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
答案 0 :(得分:1)
翻转日志文件是logback中归档日志文件的别名,因此滚动意味着归档。
我需要将日志存储为文本14天,然后存档
然后不要对滚动策略设置最大文件限制。但是,我认为没有必要将其作为文本。据我所知,logback将日志归档为.gz格式。您可以使用一堆命令直接查看.gz格式的日志。例如,zcat,zgrep,你可以直接用less来看一下gz格式的日志。
您可以编写一个简单的shell程序,将14天的日志从目录移动到另一个地方(这是真正的归档)。该shell只需要通过设置一个cron作业每天运行一次。