我有一个保存所有其他服务日志的项目。它的配置方式是仅保留 7 天的日志并每天删除较旧的日志。
但我想知道是否有一个配置可以将 7 天前的日志保存为 .gz 格式到新文件夹中,然后删除那些 7 天前的日志。如果我想查看任何较旧的问题,那么我可以解压旧日志。
目前我的配置是这样的->
<appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%highlight([%level]) - [%date] - [%logger] %msg%n</pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${DEV_HOME}/archived/app-error.%d{yyyy-MM-dd}.%i.log </fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>7</maxHistory>
</rollingPolicy>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<!-- output messages of exact level only -->
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
Logback 没有任何开箱即用的功能来从已实现的日志文件夹创建 zip。但是,您可以使用 shell 脚本 (Unix) 或批处理脚本 (Windows) 并安排它根据需要的时间线运行。您将轻松找到可以修改的示例 shell/批处理脚本。