logback - 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>
任何建议将不胜感激。
解决方案
推荐阅读
- java - 从另一个类导入命令参数
- css - 带变量和乘法的 CSS Calc
- node.js - 如何在具有多个构建代理的服务器上使用 npm 缓存
- java - 关闭特定数据库并关闭连接的正确方法是什么?
- c# - Smartsheet API Resourcenotfooundexception 创建新工作表
- javascript - 包裹在 jQuery() 的 .text() 中的 jquery ajax 请求与 div 的 .text() 不同?
- ubuntu - JetBrains Rider 显示未安装 Mono
- r - 根据解密对纽约市公园进行地理编码。如果没有结果写入 NA 并继续到其他行
- python - 在linux中使用printf添加带有变量的php代码的问题
- c# - 如何在标准着色器的渲染模式之间切换?