简单实现代码执行的日志追踪
- 定义拦截器
TraceInterceptor.java
@Component
public class TraceInterceptor extends HandlerInterceptorAdapter {
private final static String TRACE_ID = "traceId";
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String token = UUID.randomUUID().toString().replaceAll("-", "");
MDC.put(TRACE_ID, token);
return true;
}
}
InterceptorConfig.java
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
@Bean
public TraceInterceptor getTraceInterceptor() {
return new TraceInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getTraceInterceptor()).addPathPatterns("/*");
}
}
- 配置文件xml
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} [%X{traceId}] " />
3.日志文件输出