Spring Boot 通过Filter添加logback traceId
@Slf4j
@Component
public class TraceIdFilter extends OncePerRequestFilter implements Ordered {
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
@Override
protected void doFilterInternal(@Nonnull HttpServletRequest request,@Nonnull HttpServletResponse response,@Nonnull FilterChain filterChain) throws ServletException, IOException {
try {
String traceId = MDCUtils.getOrGenerateTraceId(request);
MDCUtils.setTraceId(traceId);
response.setHeader(MDCUtils.TRACE_ID_KEY, traceId);
} catch (Exception e) {
log.error("设置traceId出现异常", e);
}
filterChain.doFilter(request, response);
MDC.clear();
}
}
logback 配置点:
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [${log.serverName}-${log.env}][traceId-%X{traceId:-}][spanId-%X{spanId:-}] %-5level %logger{20} - %msg%n</pattern>
关键配置:[traceId-%X{traceId:-}]
版权所有 © 【代码谷】 欢迎非商用转载,转载请按下面格式注明出处,商业转载请联系授权,违者必究。(提示:点击下方内容复制出处)
源文:《Spring Boot 通过Filter添加logback traceId》,链接:https://www.daimagu.com/article/2411271542374299.html,来源:【代码谷】
评论