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