亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

SpringBoot+slf4j實現全鏈路調用日志跟蹤的方法(一)

瀏覽:104日期:2023-03-11 13:47:38

SpringBoot中除了常見的分布式鏈路跟蹤系統zipkin、skywalking等,如果需要快速定位一次請求的所有日志,那么該如何實現?實際slf4j提供了MDC(Mapped Diagnostic Contexts)功能,支持用戶定義和修改日志的輸出格式以及內容。本文將介紹 Tracer集成的slf4j MDC功能,方便用戶在只簡單修改日志配置文件的前提下輸出當前 Tracer 上下文 TraceId。

MDC介紹

MDC(Mapped Diagnostic Context,映射調試上下文)是 log4j 、logback及log4j2 提供的一種方便在多線程條件下記錄日志的功能。MDC 可以看成是一個與當前線程綁定的哈希表,可以往其中添加鍵值對。MDC 中包含的內容可以被同一線程中執行的代碼所訪問。當前線程的子線程會繼承其父線程中的 MDC 的內容。當需要記錄日志時,只需要從 MDC 中獲取所需的信息即可。MDC 的內容則由程序在適當的時候保存進去。對于一個 Web 應用來說,通常是在請求被處理的最開始保存這些數據。

springboot中如何使用

添加攔截器

public class LogInterceptor implements HandlerInterceptor {@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)throws Exception {String tid = UUID.randomUUID().toString().replace('-', '');MDC.put(CloudConstant.MDC_TRACE, tid);return true;}@Overridepublic void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler,@Nullable Exception ex) throws Exception {MDC.remove(CloudConstant.MDC_TRACE);}}

注冊攔截器

@Configurationpublic class WebInterceptorAdapter implements WebMvcConfigurer {@Beanpublic LogInterceptor logInterceptor() {return new LogInterceptor();}@Overridepublic void addInterceptors(InterceptorRegistry registry) {registry.addInterceptor(logInterceptor());}}

修改日志輸出格式,添加%X{traceId},traceId和MDC中的鍵名稱一致

<pattern>%date %-5level ${PID:- } [%thread] [%X{tid}] : /*[%logger{50}:%line] %msg*/%n</pattern>

添加一個controller調用測試

@RestController@RequestMapping('trace')@Slf4jpublic class TestTraceController { @GetMapping('traceLog') public String traceLog() {log.info('---接口調用了---');traceService();return 'success'; } private void traceService(){log.error('## 執行traceService方法'); }}

日志打印如下,我們可以通過traceId快速查找出同一個請求的所有日志

SpringBoot+slf4j實現全鏈路調用日志跟蹤的方法(一)

細心的同學就會發現,MDC還是存在一些問題

在子線程中打印日志丟失traceId HTTP調用丟失traceId

在下一篇文章中小編繼續講解子線程中如何實現traceId的日志跟蹤

到此這篇關于SpringBoot+slf4j實現全鏈路調用日志跟蹤 一的文章就介紹到這了,更多相關SpringBoot全鏈路調用日志跟蹤內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 亚洲天堂婷婷 | 国模午夜写真福利视频在线 | 99视频在线永久免费观看 | 韩国一级毛片视频免费观看 | 人人干人人玩 | 国产精品一区二区无线 | 国产亚洲精品激情一区二区三区 | 伊人伊成久久人综合网777 | 欧美不卡视频 | xxoo做爰猛烈动态视频网站 | 国产成人高清在线观看播放 | 国产亚洲精品久久久久久久网站 | 日韩视频在线观看一区二区 | 久久精品国产免费高清 | 国产综合欧美日韩视频一区 | 噜噜噜福利视频在线观看 | 欧美黄色免费 | 青青草国产成人久久91网 | 一级片免费在线 | 国产免费麻豆 | 精品不卡一区中文字幕 | 无人精品乱码一区二区三区 | 人成精品视频三区二区一区 | 成人免费国产欧美日韩你懂的 | 久草视频福利在线 | 三级成人影院 | 成年在线观看视频免费看 | 国内精品露脸在线视频播放 | 欧美区日韩区 | 黄色一级片免费在线观看 | 中国内地毛片免费高清 | 毛片免费观看久久欧美 | 国产精品成人在线播放 | 日韩爱爱网 | 日本在线网站 | 一级片视频网站 | 欧美成熟videos老妇 | 免费国产人做人视频在线观看 | 久久性| 久久视频6免费观看视频精品 | 久久99国产精一区二区三区! |