SpringBoot項目使用MDC給日志增加唯一標(biāo)識的實現(xiàn)步驟
更新時間:2025年03月22日 13:59:08 作者:TOP灬小朋友
本文介紹了如何在SpringBoot項目中使用MDC(Mapped?Diagnostic?Context)為日志增加唯一標(biāo)識,以便于日志追蹤,通過創(chuàng)建日志攔截器、配置攔截器以及修改日志配置文件,可以實現(xiàn)這一功能,文章還提供了源碼地址,方便讀者學(xué)習(xí)和參考,感興趣的朋友一起看看吧
【JAVA】SpringBoot項目使用MDC給日志增加唯一標(biāo)識,方便日志追蹤
1.日志效果

2.實現(xiàn)步驟
2.1.創(chuàng)建日志攔截器 LoggingInterceptor
@Component
public class LoggingInterceptor implements HandlerInterceptor {
private static final String LOG_ID = "logId";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String simpleUUID = IdUtil.simpleUUID();
String logId =String.format("[logId:%s]", simpleUUID);
MDC.put(LOG_ID, logId);
return true;
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
MDC.remove(LOG_ID);
}
}2.2.配置攔截器
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Resource
private LoggingInterceptor loggingInterceptor;
/**
* 注冊攔截器
*
* @param registry 入?yún)?
*/
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注冊日志攔截器
registry.addInterceptor(loggingInterceptor).addPathPatterns("/**");
}
}2.3.修改日志配置文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 讀取application.yml中的日志配置 -->
<springProperty scope="context" name="LOG_PATH" source="logging.file.path"/>
<springProperty scope="context" name="LOG_NAME" source="logging.file.log-name"/>
<springProperty scope="context" name="MAX_HISTORY" source="logging.file.days"/>
<!-- 定義控制臺輸出格式 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{logId} %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 定義每天生成一個日志文件,并歸檔生成壓縮包 -->
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>./${LOG_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天生成一個日志文件 -->
<fileNamePattern>${LOG_PATH}/%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 最多保留指定天數(shù)的日志文件 -->
<maxHistory>${MAX_HISTORY}</maxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %X{logId} %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<!-- 日志級別設(shè)置 -->
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="FILE"/>
</root>
</configuration>3.源碼地址
https://gitee.com/xhs101/spring-boot-demo
到此這篇關(guān)于SpringBoot項目使用MDC給日志增加唯一標(biāo)識的文章就介紹到這了,更多相關(guān)SpringBoot MDC日志增加唯一標(biāo)識內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter)
本文主要介紹了Spring Security6配置方法(廢棄WebSecurityConfigurerAdapter),就像文章標(biāo)題所說的,SpringSecurity已經(jīng)廢棄了繼承WebSecurityConfigurerAdapter的配置方式,下面就來詳細(xì)的介紹一下,感興趣的可以了解一下2023-12-12
Java使用Apache POI和EasyExcel讀取Excel文件的實現(xiàn)方案
Java 讀取 Excel 文件核心依賴 Apache POI(兼容 .xls(Excel 97-2003)和 .xlsx(Excel 2007+))或 EasyExcel(阿里開源,低內(nèi)存、高性能),以下是兩種主流方案的完整實現(xiàn),需要的朋友可以參考下2025-12-12
java Arrays.asList 返回什么與普通 ArrayList 區(qū)別介
Arrays.asList()返回一個固定大小的List視圖,而不是java.util.ArrayList,它不支持add和remove操作,但支持set操作,本文介紹java Arrays.asList返回什么與普通 ArrayList區(qū)別,感興趣的朋友跟隨小編一起看看吧2026-01-01

