使用 Logstash 编码器记录异常时如何包含 mdc 键

问题描述

我有 logback-spring.xml 文件,其中有 json 控制台附加程序:

我包含 mdc 密钥 requestId

但是,当记录运行时异常时,此 requestId 会丢失。 有没有办法在出现异常时将 requestId 打印在日志中?

<configuration>

    <appender name="jsonConsoleAppender" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="net.logstash.logback.encoder.LogstashEncoder">
            <fieldNames>
                <timestamp>log_datetime</timestamp>
                <thread>thread</thread>
                <logger>[ignore]</logger>
                <version>[ignore]</version>
                <levelValue>[ignore]</levelValue>
                <callerClass>class_name</callerClass>
                <callerMethod>method_name</callerMethod>
                <callerFile>[ignore]</callerFile>
                <callerLine>line_num</callerLine>
            </fieldNames>
            <includeMdcKeyName>requestId</includeMdcKeyName>
            <timestampPattern>yyyy-MM-dd HH:mm:ss.SSS</timestampPattern>
            <includeCallerData>true</includeCallerData>
            <throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
                <maxDepthPerThrowable>30</maxDepthPerThrowable>
                <maxLength>2048</maxLength>
                <shortenedClassNameLength>20</shortenedClassNameLength>
                <exclude>sun\.reflect\..*\.invoke.*</exclude>
                <exclude>net\.sf\.cglib\.proxy\.MethodProxy\.invoke</exclude>
                <rootCauseFirst>true</rootCauseFirst>
                <inlineHash>true</inlineHash>
            </throwableConverter>
        </encoder>
    </appender>

    <springProfile name="!local">
        <root level="INFO">
            <appender-ref ref="jsonConsoleAppender"/>
        </root>
    </springProfile>

</configuration>

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)