logback中使用MDC自定义日志输出格式


logback-MDC

相当于自定义日志格式输出

写在过滤器中

示例:

           try {
			Context context = createContext(request, response);
			processSysNo(request, response, context);
			processSeqNo(request, response, context);
			processTraceId(request, response, context);
			MDC.put("systemName",context.getSysNo());
			if (!StringUtils.isEmpty(context.getReqSeqNo())){
				MDC.put("serialNum",context.getReqSeqNo());
			}else {
				MDC.put("serialNum",context.getSeqNo());
			}
			RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
			// 进程
			MDC.put("process",runtimeMXBean.getName());
			log.debug(context.toString());
			chain.doFilter(request, response);
		} finally {
			removeContext(request, response);
			// 避免线程泄漏
			MDC.clear();
		}	

在logback.xml中配置引入

%X{process}
%X{systemName}
[时间戳] | 日志级别 | 所属系统或子系统 | traceId | spanId | 全局流水号 | 进程号 | 线程号 | 源码文件名:行号 | 日志内容
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] | %-5level | %X{systemName} | %X{X-B3-TraceId:-} | %X{X-B3-SpanId:-} | %X{serialNum} | %X{process} | %thread | %class:%line | %msg%n</pattern>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM