【Java】--MDC、AOP切面实现trace日志跟踪

一、前言

这篇文章主要介绍trace日志跟踪方案,主要是结合AOP切面、具体业务场景来实现相关功能。

二、代码示例

ThreadMdcUtil工具类

public class ThreadMdcUtil {
   
    
    

    public static void setTraceIdIfAbsent() {
   
    
    
        if (MDC.get("traceId") == null) {
   
    
    
            MDC.put("traceId", TraceIdUtil.getTraceId());
        }
    }

    public static Map<String,Object> getTraceInfo(){
   
    
    
        Map<String,Object> map = new HashMap<>();
        map.put("traceId",MDC.get("traceId"));
        map.put("operator",MDC.get("operator"));
        map.put("businessType",MDC.get("businessType"));
        map.put("className",MDC.get("className"));
        map.put("wayName",MDC.get("wayName"));
        return map;
    }


    /**
     * 定制链路跟踪信息
     * @param traceId
     * @param operator
     * @param businessType
     * @param className
     * @param wayName
     */
    public static void customizeTrace(String traceId,String operator,String businessType,String className,String wayName){
   
    
    
        if(MDC.get("traceId") == null){
   
    
    
            MDC.put("traceId", StringUtils.isNotBlank(traceId)? traceId

猜你喜欢

转载自blog.csdn.net/xunmengyou1990/article/details/130184533