【问题标题】:how to print mdc value in logback如何在 logback 中打印 mdc 值
【发布时间】:2020-06-04 13:03:14
【问题描述】:

我没有在 logback 中获得 mdc 值

你能帮帮我吗

Java 代码:

       String traceId = MDC.get(getJlgConfiguration().getTraceId());
        String sessionId = MDC.get(getJlgConfiguration().getSessionId());

Logback.xml

<configuration scan="true" scanPeriod="60" debug="true">

    <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
        <Pattern>
                %d{yyyy-MM-dd HH:mm:ss} - %class{0}.%M %L, ole-session-id:%mdc{ole-session-id:-NONE}, jlg-trace-id:%mdc{jlg-trace-id:-NONE} - %msg%n
        </Pattern>
    </encoder>
    <root level="info">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

【问题讨论】:

  • 你的 sn-p 是 get() 吗?您需要输入(Key,Val)然后记录然后删除。如果您想使用自己的布局进行格式化,则需要知道密钥。请参阅logback.qos.ch/manual/mdc.html 上的示例

标签: java spring-boot logback atg mdc


【解决方案1】:

你必须使用 %X 而不是 %mdc

%d{yyyy-MM-dd HH:mm:ss} - %class{0}.%M %L, ole-session-id:%X{ole-session-id:-NONE}, jlg-trace-id:%X{jlg-trace-id:-NONE} - %msg%n

查看文档以获取更多信息 http://logback.qos.ch/manual/mdc.html

【讨论】:

  • 仍然没有获得价值!如果我使用上面的代码
  • 我现在才看到。为什么你使用编码器而不是附加器?并且该模式不在配置的 CONSOLE appender 中
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-12
  • 2021-07-12
  • 1970-01-01
  • 2019-05-21
  • 2013-12-01
相关资源
最近更新 更多