如何记录来自 Akka (Java) 的所有传入消息

2024-05-20

在 Scala 中,您可以使用 LoggingReceive 包装接收函数。如何通过 Java API 实现相同的目标?

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

Scala API 有LoggingReceive装饰器,因为部分函数文字使得表达在所有情况下要完成的事情变得很尴尬(就像这个日志记录)。

在 Java 中你不会遇到这个问题,因为你的onReceive方法始终被调用,您可以在顶部放置一条日志语句来查看参与者收到的所有消息。作为额外的好处,您可以决定在哪个级别记录它们;-)

如果您想让日志记录以配置设置为条件akka.actor.debug.receive(就像 Scala 一样),那么你可以说

if (getContext().system().settings().AddLoggingReceive())
  log.debug("received message of type {}", msg.getClass());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何记录来自 Akka (Java) 的所有传入消息 的相关文章

随机推荐