Logback格式简记
发布于2024-07-11 23:38:33,更新于2024-07-12 02:00:55,标签:java 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog一、常见转换符
时间与日期
%d{pattern}
:输出当前日期和时间。例如,%d{yyyy-MM-dd HH:mm:ss.SSS}
会输出2024-07-11 15:34:55.123
。
日志级别
%level
或%p
:输出日志级别,如INFO
,DEBUG
,WARN
,ERROR
。
日志信息
%msg
或%m
:输出日志消息内容。%C
或%class
:输出类的全限定名。%M
或%method
:输出方法名。%L
或%line
:输出日志的代码所在行号。%F
或%file
:输出日志的代码所在文件名。如Test.java
线程信息
%thread
或%t
:输出产生日志的线程名称。
日志记录器
%logger{length}
或%c{length}
:输出日志记录器的名称,可以指定长度。例如%logger{3}
,如果记录器的全名小于或等于指定的长度(这里是 3),则完整显示。如果超过指定长度,Logback 会从左到右缩短包名,直到整个名称的长度不超过指定值或无法进一步缩短。
进程信息
${PID}
:输出当前进程的 ID。需要代码层面System.setProperty("PID")
其他
%n
:输出一个换行符。%r
:输出自应用启动到记录该日志事件所用的毫秒数。%property{key}
:输出配置文件中的属性。如%property{os.name}
、%property{user.dir}
%ex
或%exception
:即使不配置也默认开启的。输出异常及其堆栈信息。%ex{5}
表示堆栈信息最大只输出5行%nopex
:不输出异常。%caller
:输出调用者信息,包括类名、方法名、文件名和行号。如at top.meethigher.step1.Step1.main(Step1.java:28)
正则替换
%replace(pattern){regex, replacement}
:例如%replace(%msg){'password=\w+', 'password=*****'}
二、示例格式
常用格式
跟踪 org.springframework.boot.logging.logback.DefaultLogbackConfiguration
源码,可以查看到默认的日志格式
我自己常用的日志格式如下
1 | %d{yyyy-MM-dd HH:mm:ss.SSS} %5p ${PID} --- [%15.15t] %-40.40logger{39} : %msg%n%ex{5} |
解析
%d{yyyy-MM-dd HH:mm:ss.SSS}
- 含义:日期和时间
- 格式:年-月-日 时:分:秒.毫秒
- 示例:2023-07-12 14:30:15.123
%5p
- 含义:日志级别,右对齐,宽度为5个字符
- 可能的值:ERROR, WARN, INFO, DEBUG, TRACE
- 示例:
INFO
${PID}
- 含义:进程ID
- 示例:
System.setProperty("PID","111")
[%15.15t]
- 含义:线程名,右对齐,最小和最大宽度为15个字符
- 示例:
[ main]
%-40.40logger{39}
- 含义:记录器名称,左对齐,最小和最大宽度为40个字符。表示字段的最小和最大宽度均为40个字符。如果实际内容不足40个字符,会在右侧填充空格;如果超过40个字符,会截断显示。
{39}
表示如果名称超过39个字符,将进行缩写- 示例:
com.example.MyClass
%msg
- 含义:日志消息内容
- 示例:Application started successfully
%n
- 含义:换行符
%ex{5}
- 含义:异常堆栈跟踪,限制为5行
配置文件
提取出一套适用于自己的 logback.xml
1 |
|
spring 中指定日志如下
1 | logging: |
三、参考致谢
打赏