我有 Spring MVC 应用程序,我在其中实现了一个扩展 HandlerInterceptorAdapter 的类,以便我在执行任何控制器之前在 preHandle、postHandle 和 afterCompletion 中执行一些操作。以下是我正在观察的内容。
preHandle 日志记录 AppTime 的日志条目:00:30:01.230 | 线程:[http-nio-8080-exec-1] | 级别:信息 | 类:hello.extractor | X-Span-Export=false,X-B3-SpanId=3aad3f52e26eb59d,X-B3-TraceId=3aad3f52e26eb59d | 消息:内部 preHandle
postHandle 日志记录的日志条目 AppTime: 00:30:01.394 | 线程:[http-nio-8080-exec-1] | 级别:信息 | 类:hello.extractor | X-Span-Export=false,X-B3-SpanId=3aad3f52e26eb59d,X-B3-TraceId=3aad3f52e26eb59d | 消息:内部 postHandle
afterCompletionlogging AppTime 的日志条目:00:30:01.395 | 线程:[http-nio-8080-exec-1] | 级别:信息 | 类:hello.extractor | | 消息:在完成后。
如果您看到第三个条目缺少跟踪 ID 和跨度 ID。关于如何解决这个问题的任何想法?
公共类提取器扩展 HandlerInterceptorAdapter {
private static Logger logger = LoggerFactory.getLogger(HttpHeaderExtractor.class);
@Autowired
public Extractor() {
}
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
logger.info("Inside preHandle");
return true;
}
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
logger.info("Inside postHandle");
}
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
logger.info("Inside afterCompletion");
}
}