コントローラーが実行される前に、preHandle、postHandle、および afterCompletion 内でいくつかの操作を実行するために、HandlerInterceptorAdapter を拡張するクラスを実装した Spring MVC アプリケーションがあります。以下は私が観察しているものです。
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 | | | Msg: afterCompletion の内部。
3 番目のエントリにトレース ID とスパン ID が欠落している場合。これを解決する方法について何か考えはありますか?
public class Extractor extends 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");
}
}