wie Logging-Funktion beim Senden und Empfangen Aktion in akka hinzufügen

8

Jetzt werde ich gebeten, die Protokollierungsfunktion in akkas Akteur hinzuzufügen.

Wenn eine Nachricht empfangen wird, bevor sie bearbeitet wird, sollte diese Nachricht in das Protokoll geschrieben werden. Und bevor eine Nachricht gesendet wird, sollte diese Nachricht zuerst protokolliert werden.

Ich denke, ich sollte die Funktionen receive und send in Actor außer Kraft setzen. Angenommen, ich erstelle ein Merkmal actorlog , das Actor erweitert. Und die Klasse myActor erweitert actorlog . Aber in myActor muss ich receive function überschreiben (es scheint hier Probleme zu verursachen). Also bin ich verwirrt was ich tun soll.

PS. Ich weiß, akka bietet Protokollierung. Aber jetzt muss ich diese Funktion selbst implementieren.

    
city 07.11.2013, 02:42
quelle

3 Antworten

9

Neben den anderen Antworten hier ist ein anderer Ansatz, orElse zu verwenden, um eine Teilfunktion an Ihre receive anzuhängen. Geben Sie in dieser Teilfunktion die Protokollierung in isDefinedAt ein, damit sie bei jeder Nachricht aufgerufen wird.

Zum Beispiel:

%Vor%

Die Verwendung von orElse ist ein allgemeiner Ansatz zum Erstellen von receive behavior. In den meisten Fällen komponiere ich Dinge wie diese:

%Vor%

Ein gutes Beispiel für den Stackable-Traits-Ansatz kann in dieser Präsentation gesehen werden: Ссылка

>     
sourcedelica 07.11.2013, 14:45
quelle
22

Es gibt ein Dienstprogramm, um die Protokollierung der empfangenen Nachrichten in Akka zu erhalten. Es wird kurz in der Protokollierungsdokumentation erwähnt. Im Grunde verpackst du deine Empfangsfunktion so:

%Vor%

Und dann aktivierst du es in deiner Konfiguration mit:

%Vor%

Die Informationen werden auf Debug-Ebene protokolliert.

    
Björn Antonsson 07.11.2013 08:54
quelle
2
  1. Verwenden Sie den stapelbaren Modifikator abstract override für den stapelbaren Aufruf von receive method.
  2. Verwenden Sie die neue Funktion von Akka: ereignisbasiertes Actor-System (docs hier ).
Yuriy 07.11.2013 07:16
quelle

Tags und Links