有没有办法将旧日志保存为存档,然后删除存档文件?

问题描述 投票:0回答:1

我有一个保存所有其他服务日志的项目。它的配置方式是仅保留 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>
java logging gzip logback
1个回答
0
投票

Logback 没有任何开箱即用的功能来从已实现的日志文件夹创建 zip。但是,您可以使用 shell 脚本 (Unix) 或批处理脚本 (Windows) 并安排它根据需要的时间线运行。您将轻松找到可以修改的示例 shell/批处理脚本。

© www.soinside.com 2019 - 2024. All rights reserved.