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

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

相关推荐
侠***I1 分钟前
探索三菱 FX 系列 C# 上位机源码之旅
spring
han_hanker3 分钟前
这里使用 extends HashMap<String, Object> 和 类本身定义变量的优缺点
java·开发语言
careathers12 分钟前
【JavaSE语法】面向对象初步认识
java·面向对象
coding随想13 分钟前
掌控选区的终极武器:getSelection API的深度解析与实战应用
java·前端·javascript
嵌入式小能手23 分钟前
飞凌嵌入式ElfBoard-文件I/O的深入学习之存储映射I/O
java·前端·学习
ChinaRainbowSea1 小时前
github 仓库主页美化定制
java·后端·github
程序猿小蒜1 小时前
基于springboot的医院资源管理系统开发与设计
java·前端·spring boot·后端·spring
程序员-周李斌1 小时前
ConcurrentHashMap 源码分析
java·开发语言·哈希算法·散列表·开源软件
ChrisitineTX2 小时前
凌晨突发Java并发问题:synchronized锁升级导致接口超时,排查过程全记录
java·数据库·oracle
zzhongcy2 小时前
Java: HashMap 和 ConcurrentHashMap的区别
java·开发语言