一、引言
带有trackId的日志,对系统问题的定位很有帮助。
二、知识点
2.1 logback 日志的主要元素
主要有3个元素:
1、pattern 控制单条日志输出的格式。
2、appender 是一个日志打印的组件,这里组件里面定义了打印过滤的条件、打印输出方式(控制台、文件)、滚动策略、编码方式、打印格式(由pattern指定)等等。
3、logger 控制类和包的日志和哪个appender关联;root 也是 logger,是所有logger的父类
2.2 pattern
a.示例pattern:
<property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
示例输出:
2019-10-24 20:13:39.031 INFO [applicationName,532f5b32fbb1309c,532f5b32fbb1309c,false] 29128 --- [io-9535-exec-31] c.x.l.autoconfigure.HttpInOutFilter : 个人logger输出
解析:
trackId 主要是这条语句输出的
%clr(${LOG_LEVEL_PATTERN:-%5p}) 输出对应 : INFO [applicationName,8d3ee7f0c791f766,8d3ee7f0c791f766,false]
个人logger输出是这条语句输出的
%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}
b.示例pattern:
<property name="TRACK_LOG_PATTERN" value="[%clr(%level)]%clr([%d{yyyy-MM-dd'T'HH:mm:ss.SSSZ}]){faint}[pid=%clr(${PID:- }){magenta} thread=%clr(%t){faint} ] %m${LOG_EXCEPTION_CONVER