gpt4 book ai didi

scala - 在不修改所有接收方法的情况下记录 Akka 中的所有消息

转载 作者:行者123 更新时间:2023-12-04 15:10:56 26 4
gpt4 key购买 nike

我想在我的 Akka 应用程序中记录所有收到的消息给所有 Actor 。
有一个配置 akka.actor.debug.receive如果 actor 接收方法是 LoggingReceive,它将记录发送给 actor 的所有消息.

根据 http://doc.akka.io/docs/akka/current/additional/faq.html这意味着用 LoggingReceive 包装所有接收方法如 How to log all incoming messages from Akka (Java)

def receive = {
LoggingReceive {
case x ⇒ // do something
}
}

有没有办法隐式地或通过配置来做到这一点?

最佳答案

不是我所知道的,但你应该很容易做到这样的事情:

trait LoggingReceiveActor extends Actor{

def receive = LoggingReceive(loggedReceive)

def loggedReceive:Receive
}

class MyActor extends LoggingReceiveActor{

def loggedReceive = {
case _ =>
}
}

任何继承自 LoggingReceiveActor 的actor现在必须为 loggingReceive 提供一个实现如果您这样做,那么当启用调试日志记录时,这种参与者将记录收到的消息。

关于scala - 在不修改所有接收方法的情况下记录 Akka 中的所有消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28029645/

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