gpt4 book ai didi

java - 如何通过 Java 使用 MDC 日志记录

转载 作者:搜寻专家 更新时间:2023-11-01 03:31:27 25 4
gpt4 key购买 nike

我试图找到一种在 Java 中基于 react /事件的异步编程中使用 MDC 的方法,但我找不到。

有人可以解释如何在回调事件/方法中传播 MDC 变量吗?

在这种情况下,如何像在传统同步编程中一样跟踪请求直到响应被提供?

最佳答案

以编程方式你可以做到

MDC.put("transId", transId);

transId 变量包含您希望能够跟踪的交易 ID。

后跟此 logback 配置:

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%date] %level [%mdc{transId}] %m%n</pattern>
</encoder>
</appender>

请注意 MDC 使用 threadLocal 来存储上下文,因此如果您跳转服务器或线程(例如使用工作模式),您将不得不在新线程中重置 MDC 上下文。我想这可能是您真正要问的,但是没有捷径可以跨线程更改保持 MDC 上下文。这意味着您必须在调用和回调中将您的 transId 作为参数发送。

注释和 AOP 可以减轻在调用中传输 transId 的一些苦差事。

关于java - 如何通过 Java 使用 MDC 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52479113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com