转换词列表
转换词 | 说明 |
---|---|
%c{长度} %lo{长度} %logger{长度} |
在记录事件的起源处输出Logger的名称。后面长度可以设置名称的长度。 |
%C{长度} %class{长度} |
输入记录日志的类的全限定名称。长度值和%logger一样 |
%contextName %cn |
输入记录器的上下文名称 |
%d{日期格式} %d{日期格式,时区} %date |
输入日志记录事件的时间,如%d{yyyy-MM-dd HH:mm:ss.SSS},也可以指定时区,参考:java.util.TimeZone |
%micros %ms |
1.3+版本支持,输入日志时间的微秒。由于性能原因,在%date之外需要单独指定 |
%F %file |
输入日志记录事件的源文件名。处于性能考虑,应尽量避免使用 |
%caller{深度} %caller{起始,结束} |
输出日志记录事件的调用者位置信息,输入的格式和JVM实现相关。 |
%kvp{NONE,SINGLE,DOUBLE} | 输出日志记录事件中的键值对,默认用双引号(double)输出 |
%L %line |
输出日志记录事件的行号,有性能瓶颈,应当尽量避免使用 |
%m %msg %message |
输入日志记录事件的日志内容 |
%M %method |
输出日志记录事件的请求方法名称 |
%n | 输出平台相关的换行符 |
%p %le %leve |
输出日志事件的级别 |
%r %relative |
输出从应用启动到时间事件发生经过的毫秒数 |
%t %threadd |
输出日志记录事件的线程名 |
%mdc{key:-defaultVal} %X{key:-defaultVal} |
输出与日志事件相关联的线程MDC,MDC:可用来进行链路追踪,底层是ThreadLocal |
%ex{depth} %exception{depth} %throwable{depth} |
输出与日志事件相关联的异常堆栈跟踪信息 |
%xEx{depth} %xException{depth} %xThrowable{depth} |
与%ex一样,只是多了类包装信息 |
%nopex %nopexception |
忽略异常 |
%marker | 输出与记录器请求关联的标记 |
%property{key} | 输出Key变量的值 |
replace(p){r, t} | 用t将p中与r相匹配的替换掉,如:%replace(%logger %msg){‘.‘, ‘/‘} 将用正斜杠替换记录器中的所有点 |
prefix(p) | 在输入的内容添加前缀,如你希望日志输出前有名称:%d thread=%thread level=%level logger=%logger user=%X{user} %message 可以使用%d %prefix(%thread %level %logger %X{user}) %message替换 |
rEx{depth} rootException{depth} |
输出与日志事件关联的异常的堆栈跟踪 |
格式化修饰符
可以在%和转换词之间使用-表示左对齐,或者使用10进制的整数表示截取的最大长度和最小长度,下面是一些示例和说明
格式 | 左对齐 | 最小长度 | 最大长度 | 说明 |
---|---|---|---|---|
%20logger | false | 20 | 无 | 表示输出内容如果小于20个字符,则用空格填空 |
%-20logger | true | 20 | 无 | 表示输出内容左对齐,小于20个字符则在右侧空格填充 |
%.30logger | false | 无 | 30 | 表示输出内容大于30个字符,则从头截断 |
%20.30logger | false | 20 | 30 | 输出内容小于20,则左侧填充空格,如果大于30则从头截断 |
%-20.30logger | true | 20 | 30 | 疏忽内容小于20,则右侧填充空格,大于30则从头截断 |
%.-30logger | false | 无 | 30 | 内容大于30,则从末尾截断 |
例子如下:
| 格式 | 日志记录器名称 | 结果 |
| ————— | ——————— | ———————————————————————– |
| [%20.20logger] | main.name | [ main.name] |
| [%-20.20logger] | main.name | [main.name ] |
| [%10.10logger] | main.foo.foo.bar.Name | [o.bar.Name] |
| [%10.-10logger] | main.foo.foo.bar.Name | [main.foo.f] |
括号分组
对于多个修饰符的输出内容,我们可以用括号来进行分组,组合成一个然后使用格式化修饰符对其进行格式。如:%-30(%d{HH:mm:ss.SSS} [%thread])
注意:如果需要将定义的()在输出内容里显示,则需要添加()进行转义。
颜色
logback支持对输出的内容进行着色,可以配合括号分组使用。如将 %-5logger 内容进行着色,可以使用%highlight(%-5level)。支持的颜色有:**”%black”, “%red”, “%green”,”%yellow”,”%blue”, “%magenta”,”%cyan”, “%white”, “%gray”, “%boldRed”,”%boldGreen”, “%boldYellow”, “%boldBlue”, “%boldMagenta””%boldCyan”, “%boldWhite” 和 “%highlight” 。**
鉴别器(Evaluators)
如果我们需要对输出指定的调用者或者包含某些关键字的日志内容时,这时候我们就需要Evaluators。在上面的修饰符列表 caller、exception、xException、rootException都支持使用Evaluators。使用例子请参见Evaluators
参考资料
【1】: Chapter 6: Layouts