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

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

相关推荐
zzzll111124 分钟前
Spring Boot 实现数据脱敏:自定义注解 + Jackson 序列化器
java·spring boot·后端
lhldsg7 小时前
全民健身解决方案小程序开发:从0到1的技术实战
java·数据库·需求分析
jason成都8 小时前
Spring WebFlux 适配达梦新方案|dm‑r2dbc:Netty 异步传输的实验性 R2DBC 驱动
java·后端·spring
泡海椒8 小时前
内置SPI函数库详解:JQuick-Java Builtin工具类实战用法
java·开发语言·python
辰烨chenye8 小时前
LeetCode Hot 100 题解 · 二分篇
java·算法·leetcode
小羊没烦恼!8 小时前
Hello Web API系列教程——Web API与国际化
java·服务器·前端·javascript·php
小荷才露尖尖角,早有蜻蜓立上头9 小时前
过滤器的4种创建方式
java
大圣编蚕10 小时前
Java ByteArrayInputStream 详解:从入门到实战
java·开发语言·算法
程序员阿明10 小时前
idea把插件啥的不默认放在C盘
java·ide·intellij-idea
linweidong11 小时前
中科闻歌Java面试题及参考答案
java·python·大模型·提示词·ai agent·mcp·rag原理