diff --git a/axzo-common-loggings/axzo-common-trace/pom.xml b/axzo-common-loggings/axzo-common-trace/pom.xml new file mode 100644 index 0000000..89078b8 --- /dev/null +++ b/axzo-common-loggings/axzo-common-trace/pom.xml @@ -0,0 +1,37 @@ + + + 4.0.0 + + axzo-common-loggings + cn.axzo.framework.logging + 1.0.0-SNAPSHOT + + com.axzo.framework + axzo-common-trace + Axzo Common trace + + + + org.springframework.boot + spring-boot-starter-logging + + + + org.springframework.boot + spring-boot-starter-web + + + + cn.hutool + hutool-core + + + + io.github.openfeign + feign-httpclient + + + + + diff --git a/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java b/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java new file mode 100644 index 0000000..14a54fb --- /dev/null +++ b/axzo-common-loggings/axzo-common-trace/src/main/java/com/axzo/framework/trace/interceptor/FeignInterceptor.java @@ -0,0 +1,23 @@ +package com.axzo.framework.trace.interceptor; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.slf4j.MDC; +import org.springframework.context.annotation.Configuration; + +/** + * 调用前从 MDC中获取上一步骤设置的traceId,放置到 header中,供下一个服务从header中获取traceId + */ +@Configuration +public class FeignInterceptor implements RequestInterceptor { + private static final String TRACE_ID = "traceId"; + + public static final String CTX_LOG_ID_MDC = "ctxLogId"; + + @Override + public void apply(RequestTemplate requestTemplate) { + requestTemplate.header(TRACE_ID, MDC.get(TRACE_ID)); + requestTemplate.header(CTX_LOG_ID_MDC, MDC.get(CTX_LOG_ID_MDC)); + } +} +