From 54afcf47fc65f59869983560688f61ccfcaa87eb Mon Sep 17 00:00:00 2001 From: Xiang Date: Wed, 12 Nov 2025 17:11:48 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E6=97=A5=E5=BF=97=E6=A8=A1=E7=89=88?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xiang/xservice/config/TraceIdFilter.java | 36 +++++++++++++++++++ script/src/main/resources/logback-spring.xml | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 script/src/main/java/com/xiang/xservice/config/TraceIdFilter.java diff --git a/script/src/main/java/com/xiang/xservice/config/TraceIdFilter.java b/script/src/main/java/com/xiang/xservice/config/TraceIdFilter.java new file mode 100644 index 0000000..f386043 --- /dev/null +++ b/script/src/main/java/com/xiang/xservice/config/TraceIdFilter.java @@ -0,0 +1,36 @@ +package com.xiang.xservice.config; + +import org.apache.log4j.MDC; +import org.springframework.stereotype.Component; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.util.UUID; + +/** + * @Author: xiang + * @Date: 2025-11-12 17:03 + */ +@Component +public class TraceIdFilter implements Filter { + @Override + public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { + try { + // 从请求头中获取 traceId,如果没有则新建一个 + String traceId = ((HttpServletRequest) request).getHeader("traceId"); + if (traceId == null || traceId.isEmpty()) { + traceId = UUID.randomUUID().toString().replace("-", ""); + } + + MDC.put("traceId", traceId); + chain.doFilter(request, response); + } finally { + MDC.remove("traceId"); + } + } +} diff --git a/script/src/main/resources/logback-spring.xml b/script/src/main/resources/logback-spring.xml index d7691b2..661bc01 100644 --- a/script/src/main/resources/logback-spring.xml +++ b/script/src/main/resources/logback-spring.xml @@ -17,7 +17,7 @@ - %boldGreen(%contextName): %boldCyan(%d{yyyy-MM-dd HH:mm:ss:SSS}) %highlight([%c]) %boldMagenta([%t]) %boldCyan([%L]) %highlight([traceId:%X{traceId:-}) %boldGreen([%p]) - %msg%n + %boldGreen(%contextName): %boldCyan(%d{yyyy-MM-dd HH:mm:ss:SSS}) %highlight([%c]) %boldMagenta([%t]) %boldCyan([%L]) %highlight([traceId:%X{traceId:-})] %boldGreen([%p]) - %msg%n UTF-8