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

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

相关推荐
xing-xing27 分钟前
JVM 内存、直接内存、系统内存、本地内存、物理内存总结
java·jvm
yangpipi-27 分钟前
《C++并发编程实战》第5章 C++内存模型和原子操作
android·java·c++
qq_12498707531 小时前
基于微信小程序的电子元器件商城(源码+论文+部署+安装)
java·spring boot·spring·微信小程序·小程序·毕业设计
吃喝不愁霸王餐APP开发者2 小时前
基于Spring Cloud Gateway实现对外卖API请求的统一鉴权与流量染色
java·开发语言
a努力。2 小时前
美团Java面试被问:Redis集群模式的工作原理
java·redis·后端·面试
一雨方知深秋2 小时前
面向对象编程
java·封装·this·构造器·static关键字·成员变量·javabean实体类
资生算法程序员_畅想家_剑魔2 小时前
Java常见技术分享-11-责任链模式
java·spring boot·责任链模式
计算机程序设计小李同学2 小时前
动漫之家系统设计与实现
java·spring boot·后端·web安全
程序员阿鹏3 小时前
责任链模式
java·spring·servlet·tomcat·maven·责任链模式
@淡 定3 小时前
Java内存模型(JMM)详解
java·开发语言