4
在Scala中,您可以使用LoggingReceive包装接收函数。你如何从Java API获得同样的结果?如何记录来自Akka(Java)的所有传入消息
def receive = {
LoggingReceive {
case x ⇒ // do something
}
}
在Scala中,您可以使用LoggingReceive包装接收函数。你如何从Java API获得同样的结果?如何记录来自Akka(Java)的所有传入消息
def receive = {
LoggingReceive {
case x ⇒ // do something
}
}
斯卡拉API具有LoggingReceive
装饰,因为部分功能字面使得很难表达的东西在所有情况下做(这样的记录)。
在Java中,您不存在此问题,因为始终调用您的onReceive
方法,并且您可以在顶部放置一条日志语句以查看演员接收到的所有消息。作为额外的奖励,你能决定在哪个级别登录他们;-)
如果你想在配置设置akka.actor.debug.receive
(正如斯卡拉)日志记录有条件的话,你可以说,例如
if (getContext().system().settings().AddLoggingReceive())
log.debug("received message of type {}", msg.getClass());
http://doc.akka.io/docs/akka/2.3-M2/java/logging.html? – ClojureMostly
我阅读文档页面,但我认为它只包括手动记录。从http://akka.io/faq/“akka.actor.debug.receive将记录发送给演员的所有消息,如果演员接收方法是LoggingReceive”。但我无法弄清楚如何在Java中应用LoggingReceive。 – Chris