java Logback 日志格式参数详细说明

logback 打印日志格式介绍官网
Springboot 日志管理LogBack

java Logback 日志格式参数详细说明

打印日志格式:

复制代码
<property name="LOG_PATTERN" value="[${APP_NAME} ${SERVER_IP}:${SERVER_PORT}] %d{yyyy-MM-dd HH:mm:ss.SSS} %level ${PID} [%X{traceId}-%X{spanId}] [%thread] %logger %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

Logback 参数说明

%logger

输出日志 所属的类的全名。等价:

复制代码
%logger = %lo = %c

使用说明:

  • %logger 默认不给长度,显示所有。

  • 日志名字,最右边的名字永远不会被缩写,不管你给的长度是不是小于最右边的长度。

  • 其他部分,最少被缩短到一个字符,但不会被完全删除。

    %logger{5}:%L

%L: 显示打印日志行号

%class

类名。等价:

复制代码
%class = %C

使用说明:

  • 打印出类名信息,不被推荐使用。除非执行速度不是问题。

%data

输出日志时间,指定格式的方式:%d{yyyy-MM-dd HH:mm:ss}。等价:

复制代码
%data = %d

%file

输出类名。等价:

复制代码
%file = %F

使用说明:

  • 和打印出类名信息一样,不被推荐使用。除非执行速度不是问题。

%line

输出日志事件的发生位置,即输出日志讯息的语句在他所在类别的第几行。等价:

复制代码
%line = %L

使用说明:

  • 和打印出类名信息一样,不被推荐使用。除非执行速度不是问题。

%msg

输出代码中指定的讯息,如:log(message) 中的 message。等价:

复制代码
%msg = %m = %message

%method

方法名,日志请求发出的方法的方法名。等价:

复制代码
%method = %M

使用说明:

  • 和打印出类名信息一样,不被推荐使用。除非执行速度不是问题。

%n

输出一个换行符号。

使用说明:

  • %n 换行的效果和 \ n 或者 \ r\n 效果一样 在日志中起到换行的效果。

%level

输出优先级,即 DEBUG、INFO、WARN、ERROR、FATAL。等价:

复制代码
%level = %p = %le

关于这里 -5 的解释:【是否左对齐以及空格填充,最大字符和最小字符等,有兴趣可以自己研究一下】

%relative

输出自应用启动到输出该日志讯息所耗费的毫秒数。等价:

复制代码
%relative = %r

%thread

输出产生该日志事件的线程名。等价:

复制代码
%thread = %t

%i

这个在官方文档没有,但是它代表的是序号的意思

尤其在生成日志文件的时候,这个是非常有必要的,因为日志文件必须要设置最大文件大小,如果在生成日志文件的规则内,一个日志文件生成到了最大值,那就需要生成 2 号文件。

Logback 彩色日志

Logback 可配置多种颜色,支持:%black,%shired,%green,%yellow,%blue,%magenta,%cyan,%white,%gray,%boldRed,%boldGreen,%boldYellow,%boldBlue,%boldMagenta%boldCyan,%boldWhite,%highlight。

pattern 输出格式配置

复制代码
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
 
<!-- 彩色日志格式 -->
<property %clr([${APP_NAME} ${SERVER_IP}:${SERVER_PORT}]){green} %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%level) %clr(${PID}){magenta} %clr([%X{traceId}-%X{spanId}]){yellow} %clr([%thread]){blue} %clr(%logger){cyan}.%clr(%method:%line){blue} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>

logback 指定异常堆栈信息的输出行数

使用logback作为日志输出框架实现。

当程序出现异常时,输出的堆栈信息一般很多,但对于排查问题时是有点多余的,一般都是第三方包内部的各种调用信息,而对我们有用的信息往往就在上面几行

此时可以选择简化堆栈信息的打印,指定堆栈信息输出行数

在pattern标签中添加如下信息即可
%ex{5}

1示例
%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{traceId}] [%p] [%c{0}:%L] %m %n %ex{5}

参考文档

http://logback.qos.ch/manual/layouts.html#formatModifiers

相关推荐
SL_staff27 分钟前
4G设备掉线三层归因指南:SIM卡、模组、JVS-IOT网关配置精准锁定
java·物联网·产品
Wang's Blog1 小时前
Java 项目实战: 交友项目 - 黑名单:取消黑名单
java·windows·交友
杨杨杨大侠2 小时前
DeepSeek Harness:连 Agent Loop 都能替换的插件架构
java·人工智能·agent
SL_staff2 小时前
私有化低代码运维三重雷区:JVS开源栈中的Kafka/ES/RabbitMQ治理实践
java·低代码·全栈
yuniko-n2 小时前
【算法】约瑟夫环问题
java·算法
郝亚军2 小时前
manifest 中 `sha256` 与 `signValue` 的作用
java·开发语言·数据结构
譕痕2 小时前
stripe 实例
java·开发语言·stripe·checksession
墨子夕2 小时前
设计模式——Java × Python 双语言精讲 · 23 个经典模式 + 现代演进(前言篇)
java·开发语言·设计模式
骇客野人2 小时前
Linux 全套实操方案(含目录详解、文件传输、日志、文件规范、环境变量、Java 应用部署运维)
java·linux·运维
.Bryce.3 小时前
MCP+A2A+ANP,Agent通信协议的完整知识地图
java·人工智能·后端·agent·通信协议