【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中的日志配置 -->
<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>
<!-- 最多保留指定天数的日志文件 -->
<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>
<!-- 日志级别设置 -->
<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日志增加唯一标识内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论