Spring实现Logback日志模板设置动态参数

版权说明: 本文由博主keep丶原创,转载请保留此块内容在文首。
原文地址: https://blog.csdn.net/qq_38688267/article/details/144842327

文章目录

背景

多个单体服务间存在少量交互,需实现简易链路追踪功能如下图。设计链路标识traceId,实现Logback日志模板设置成动态参数输出到日志中。

设计日志格式

如下图,在日志输出中增加traceId列,且该列值如线程值一样动态改变。

实现

配置动态取值

  • 配置动态参数获取类
java 复制代码
import ch.qos.logback.core.PropertyDefinerBase;

/**
 * Logback日志动态参数traceId的值获取类
 * <br/>
 * 在{@code logback-spring.xml}中使用
 * @author zeng.zf
 */
public class TraceLogConversion extends PropertyDefinerBase {

    @Override
    public String getPropertyValue() {
        return TraceLocalCache.get();
    }
}
  • 配置映射

logback-spring.xml

日志格式化pattern值如下,pattern值中定义了traceId动态参数

text 复制代码
%green(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}})|%highlight(${LOG_LEVEL_PATTERN:-%5p})|%t|%magenta(%X{traceId})|%cyan(%logger{100}.%M\\(%L\\)):%m%n

至此,即可实现动态参数。

相关推荐
骇客野人9 分钟前
JAVA获取一个LIST中的最大值
java·linux·list
JIngJaneIL11 分钟前
基于Java失物招领系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·vue
程序员岳焱12 分钟前
Java泛型高级玩法:通配符、上下界与类型擦除避坑实战(纯干货,附完整工具类)
java·后端·程序员
期待のcode12 分钟前
MyBatis-Plus基本CRUD
java·spring boot·后端·mybatis
❀͜͡傀儡师12 分钟前
maven 仓库的Central Portal Namespaces 怎么验证
java·maven·nexus
豐儀麟阁贵13 分钟前
9.3获取字符串信息
java·开发语言·前端·算法
YJlio18 分钟前
第9章小结(9.19):Sysinternals 安全工具组合拳与脚本清单
java·学习·平面
甜鲸鱼22 分钟前
【Spring Boot + OpenAPI 3】开箱即用的 API 文档方案(SpringDoc + Knife4j)
java·spring boot·后端
robch22 分钟前
Java后端优雅的实现分页搜索排序-架构2
java·开发语言·架构
她说..23 分钟前
在定义Java接口参数时,遇到整数类型,到底该用int还是Integer?
java·开发语言·java-ee·springboot