update - 调整因为加了 TraceLogFilter 后,接口请求异常的问题

This commit is contained in:
wangli 2024-02-19 17:03:40 +08:00
parent 1ac5fbdd7c
commit e0ec13c323

View File

@ -7,6 +7,7 @@ import org.apache.skywalking.apm.toolkit.trace.Trace;
import org.apache.skywalking.apm.toolkit.trace.TraceContext; import org.apache.skywalking.apm.toolkit.trace.TraceContext;
import org.slf4j.MDC; import org.slf4j.MDC;
import org.springframework.core.Ordered; import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.filter.OncePerRequestFilter;
import javax.servlet.FilterChain; import javax.servlet.FilterChain;
@ -23,6 +24,7 @@ import java.util.UUID;
* @since 2024/2/19 16:23 * @since 2024/2/19 16:23
*/ */
@Slf4j @Slf4j
@Component
public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered { public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered {
private static final String X_REQUEST_ID = "x-request-id"; private static final String X_REQUEST_ID = "x-request-id";
@ -47,6 +49,14 @@ public class HttpTraceLogFilter extends OncePerRequestFilter implements Ordered
} else { } else {
MDC.put(Constants.CTX_LOG_ID_MDC, ctxLogId); MDC.put(Constants.CTX_LOG_ID_MDC, ctxLogId);
} }
try {
filterChain.doFilter(request, response);
} finally {
response.setHeader(Constants.CTX_LOG_ID_MDC, MDC.get(Constants.CTX_LOG_ID_MDC));
response.setHeader(X_REQUEST_ID, MDC.get(Constants.CTX_LOG_ID_MDC));
MDC.clear();
}
} }
private String getTraceId() { private String getTraceId() {