一、前言
这篇文章主要介绍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