本文主要是介绍SpringBoot项目使用MDC给日志增加唯一标识的实现步骤,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
《SpringBoot项目使用MDC给日志增加唯一标识的实现步骤》本文介绍了如何在SpringBoot项目中使用MDC(MappedDiagnosticContext)为日志增加唯一标识,以便于日...
【JAVA】SpringBoot项目使用MDC给日志增加唯一标识,方便日志追踪
1.日志效果
2.实现步骤
2.1.创建日志拦截器 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 入参 */ @Override public void addInterceptors(InterceptorRegistry registry) { // 注册日志拦截器 registry.addInterceptor(loggingInterceptor).addPathPatterns("/**"); } }
2.3.修改日志配置文件
<?XML version="1.0" encoding="UTF-8"?> <configuration> <!-- 读取application.yml中的日志配置 --> <springPropjavascripterty scope="context" name="LOjavascriptG_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> <!-- 最多保留指定天数的日志文件 --> <maxHistory>${MAX_HISTORY}</maxHistory> China编程 </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&gwww.chinasem.cnt; <!-- 日志级别设置 --> <root level="INFO"> <appender-ref ref="CONSOLE"/> <appender-ref ref="FILE"/> </root> </configuration>
3.源码地址
https://gitee.com/xhs101/spring-boot-demo
到此这篇关于SpringBoot项目使用MDC给日志增加唯一标识的文章就介绍到这了,更多相关SpringBoot MDC日志China编程增加唯一标识内容请搜索编程China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持China编程(www.chinasem.cn)!
这篇关于SpringBoot项目使用MDC给日志增加唯一标识的实现步骤的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!