当前位置: 代码网 > it编程>编程语言>Java > SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

SpringBoot项目使用MDC给日志增加唯一标识的实现步骤

2025年03月22日 Java 我要评论
【java】springboot项目使用mdc给日志增加唯一标识,方便日志追踪1.日志效果2.实现步骤2.1.创建日志拦截器 logginginterceptor@componentpublic cl

【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日志增加唯一标识内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com