使用slf4j

时间:2017-01-11 17:13:10

标签: scala akka slf4j mdc

我在基于akka的应用程序中使用slf4j并使用其MDC功能记录上下文信息。我有一个基本演员发送和接收来自一组演员的消息,演员又与另一个演员交流等等。如何将基本actor中的MDC设置传播给其他actor?我想避免使用像Play这样的其他框架。

1 个答案:

答案 0 :(得分:0)

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

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

方法2: 1.创造延伸演员的特质 2.Override方法aroundReceive填充MDC 3.为ask_and_forget创建新方法并发送使用mdc发送消息 并在内部提取

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

我更喜欢方法1和方法3,因为它们对应用程序引入了最少的重大更改,并且对于任何可以使用任何一种方法的现有应用程序的新开发人员来说都更直观。