【问题标题】:Propagate MDC using slf4j使用 slf4j 传播 MDC
【发布时间】:2017-01-11 17:13:10
【问题描述】:

我在基于 akka 的应用程序中使用 slf4j,并使用它的 MDC 功能来记录上下文信息。我有一个基础演员,他从一组演员发送和接收消息,这些演员又与另一个演员进行通信,依此类推。如何将基础 Actor 中的 MDC 设置传播给其他 Actor?我想避免使用其他框架,如 Play。

【问题讨论】:

    标签: scala akka slf4j mdc


    【解决方案1】:

    方法一: 使用 Akka 的接收管道功能 - http://doc.akka.io/docs/akka/2.4.16/contrib/receive-pipeline.html

    使用接收管道的示例解决方案 - https://stackoverflow.com/a/39320938/3076069

    方法 2: 1.创建一个扩展Actor的特征 2.重写aroundReceive方法填充MDC 3.为 ask_and_forget 创建新方法并使用 mdc 发送消息 并在内部提取它

    方法 3: 1. 创建一个 trait,在接收到消息时处理 MDC 并混入每个 Actor。 (假设每个 Actor 的传入消息将始终具有所需的 用于填充 MDC 的字段)。

    我更喜欢方法 1 和 3,因为它们为应用程序引入了最少的破坏性更改,并且对于任何将在使用这两种方法的现有应用程序上工作的新开发人员来说看起来更直观。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-22
      • 1970-01-01
      • 2014-09-27
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多