首页 > 解决方案 > logback TimeBasedRollingPolicy 将日志内容附加到归档文件

问题描述

我将TimeBasedRollingPolicy指定给RollingFileAppender,但我发现日志内容同时附加到活动日志文件(json_log.log)和归档文件(json_log.2021-05-23.log)。

活动日志文件和归档日志文件的文件信息如下所示:

5月24日15:09 json_log.2021-05-23.log

5 月 24 日 15:09 json_log.log

5 月 24 日 15:09 localhost.log

快照:正在附加活动日志文件和归档日志文件

根据上面的快照,我们可以看到今天是 5 月 24 日,活动日志文件和归档文件的修改时间是同一时间。使用命令附加到存档文件的内容是关于 5 月 24 日tail json_log.2021-05-23.log

appender 的 logback 配置如下图所示:

<appender name="JSON" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${LOGS_DIR}/${JSON_LOG_FILE_NAME}.log</file>
    <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <pattern>
                <pattern>
                    {
                    "tags": ["cbs_web"],
                    "project": "cbs_web",
                    "timestamp": "%date{\"yyyy-MM-dd'T'HH:mm:ss.SSSZ\"}",
                    "log_level": "%level",
                    "thread": "%thread",
                    "class_name": "%class",
                    "line_number": "%line",
                    "message": "%m",
                    "user_id": "%X{userId}",
                    "user_name": "%X{userName}",
                    "session_id": "%X{sessionId}",
                    "trace_id": "%X{traceId}",
                    "span_id": "%X{spanId}",
                    "http_method": "%X{httpMethod}",
                    "uri": "%X{uri}",
                    "query_string": "%X{queryString}",
                    "session_id": "%X{session_id}",
                    "stack_trace": "%exception"
                    }
                </pattern>
            </pattern>
        </providers>
    </encoder>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${LOGS_DIR}/${JSON_LOG_FILE_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
        <totalSizeCap>20GB</totalSizeCap>
    </rollingPolicy>
</appender>

该应用程序部署在 Weblogic 中,库版本如下所示:

<logback.version>1.2.3</logback.version>
<log4j-to-slf4j.version>2.12.1</log4j-to-slf4j.version>
<slf4j.version>1.7.30</slf4j.version>

任何建议将不胜感激。

标签: logback

解决方案


推荐阅读