闲碎记事本 闲碎记事本
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

YAN

我要偷偷记录...
首页
  • JAVA
  • Cloudflare
  • 学完再改一遍UI
友链
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • java

    • SpringBoot

    • SpringSecurity

    • MybatisPlus

    • Netty

    • sip

    • 其他

      • MDC 使用
      • 位运算
      • RedisMQ实现
      • 自定义枚举序列化
      • Mybatis使用自定义枚举
      • Jackson反序列化泛型注意点
      • 敏感词过滤算法
      • 线程
      • 并发学习
      • jni使用
      • 关于注释
      • 为什么一个Byte用两个16进制表示
      • JAVA获取系统信息
      • 对extends和super的理解
      • JAVA系统API
      • java探针初探
      • JAVA获取USB信息
      • HashMap初探
      • JAVA远程调试
      • 初探webflux
      • SSE示例
  • linux

  • docker

  • redis

  • nginx

  • mysql

  • 其他

  • 环境搭建

  • 知识库
  • java
  • 其他
Yan
2023-03-06

MDC 使用

配置 logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <!-- 
    -X  输出X个字符后对齐
    
    %d 输出时间 {HH:mm:ss.SSS}内为时间格式
    %thread 线程名字
    %level 日志级别
    %logger 执行类路径 {n}输出n个字符
    %method 当前方法
    %line 当前代码行数
    %X{param}  param MDC值
    %msg 日志内容
    %n 换行
     -->
    <property name="log.pattern"
              value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %level %logger{20} - [%method,%line] %X{REQ_ID}  >> %msg%n"/>

    <!-- 省略若干配置 ....-->

</configuration>

MdcUtil

public class MdcUtil {

    private final static String REQ_ID = "REQ_ID";

    private final static String BUSINESS = "BUSINESS";


    public static void  putReqId(HttpServletRequest request){
        try {
            MDC.put(REQ_ID,request.getSession(true).getId());
        } catch (IllegalArgumentException e) {
            log.warn("获取 SessionId 失败");
        }
    }

    public static void  put(String key,String val){
        MDC.put(key,val);
    }

    public static void  put(String val){
        MDC.put(BUSINESS,val);
    }


    public static String  get(){
        return MDC.get(BUSINESS);
    }

    public static void  remove(){
        MDC.remove(BUSINESS);
    }
}

使用示例


@Slf4j
public class Test {


    public static void main(String[] args) {
        MdcUtil.put("新增用户");
        one();
    }

    public static void one() {

        log.info("第一步");
        one1();
    }

    public static void one1() {
        log.info("第二步");
        one2();
    }

    public static void one2() {
        log.info("第三步");
        one3();
    }

    public static void one3() {
        log.info("第四步");
    }
}

输出

2022-06-27 14:25:25.650 新增用户 [main] INFO com.yunmell.Test - [one,17]   >> 第一步
2022-06-27 14:25:25.651 新增用户 [main] INFO com.yunmell.Test - [one1,22]  >> 第二步
2022-06-27 14:25:25.652 新增用户 [main] INFO com.yunmell.Test - [one2,27]  >> 第三步
2022-06-27 14:25:25.652 新增用户 [main] INFO com.yunmell.Test - [one3,32]  >> 第四步
上次更新: 2025/05/14, 01:34:05
FFmpeg
位运算

← FFmpeg 位运算→

最近更新
01
Caddy操作指南
04-25
02
Swap空间
04-22
03
Alist使用
04-21
更多文章>
Theme by Vdoing | Copyright © 2022-2025 YAN | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式