基于Slf4j的MDC实现日志链路串联
基于Slf4j的MDC實(shí)現(xiàn)日志鏈路串聯(lián)
一、問(wèn)題背景
為了方便運(yùn)維日常定位排查問(wèn)題時(shí) ,使用traceId查詢(xún)?nèi)罩緯r(shí)可以完整的查看當(dāng)前業(yè)務(wù)請(qǐng)求的完整日志鏈路,需使用traceId(日志跟蹤號(hào))將日志串聯(lián)起來(lái) 。
系統(tǒng)采用LogBack日志組件 ,在輸出日志時(shí)輸出_traceId日志跟蹤號(hào),logback.xml配置如下:
../log/${ ServerName}/${ AppName}.log ../log/${ ServerName}/${ AppName}.log.%d{ yyyy-MM-dd} 7 %d{ HH:mm:ss.SSS} %-5level [%.15thread][%X{ _traceId}] %logger{ 36} - %.-4096msg%n 公司系統(tǒng)采用分布式架構(gòu),從接收到請(qǐng)求到業(yè)務(wù)處理完成并返回 ,涉及SpringMVC入口、服務(wù)間dubbo調(diào)用 、基于RocketMQ實(shí)現(xiàn)的業(yè)務(wù)解耦、以及來(lái)自第三方渠道的http通知回調(diào)