Wie schreiben Sie-Protokolle in eine Datei mit Log4j und Sturm-Framework?
Ich habe ein bisschen ein Problem in logging in eine Datei mit log4j im Sturm .
Vor Abgabe meiner Topologie , ich.e in meiner main-Methode schrieb ich einige log-Anweisungen und konfiguriert den logger mit :
PropertyConfigurator.configure(myLog4jProperties)
-
Wenn ich jetzt laufen meine Topologie mit meinem ausführbare jar-Datei in eclipse
seine Arbeitsmethoden in Ordnung und log-Dateien erstellt werden als angenommen.
ODER
Wenn ich mein ausführbares jar mit "java -jar MyJarFile
someOtherOptions", ich kann sehen, log4j konfiguriert und die Dateien sind
wohlgeformtes und Protokollierung erfolgt auf beide Dateien und Konsole (wie
definiert in meiner log4j.Eigenschaften) -
ABER wenn ich das gleiche Glas mit "Sturm jar MyJarFile MyMainClass someOtherOptions" es ist nicht in der Lage zu erstellen und zu protokollieren
in den Dateien, außer auf der Konsole.
Ich spreche über die Protokolle, die ich Schreibe VOR hiermit meine Topologie.
Gibt es eine Möglichkeit zum anmelden meine Angaben in einer Datei, während mit Sturm ? Ich bin nicht gebunden zu verwenden org.apache.log4j.
- Sie sind mit einem lokalen cluster als jar-exec? Wenn Sie "Sturm-jar ..." Sie sind mit den cluster-Modus. So haben Sie die Datei im Sturm.log.Eigenschaften auf Ihre Sturm-install-dir / log4j in deinem server ? Wenn Sie uns eine Topologie, in der cluster-Modus, Sturm bereits ausgeführt wird und das schreiben von logs, vielleicht kann man Sie nicht überschreiben log4j zur Laufzeit, also das ändern der Sturm log4j Datei vor, sollte in allen Fällen funktionieren.
- Ich bin eigentlich läuft in local_mode. Ich kann nicht finden, alle log4j-Eigenschaften in Zusammenhang storm install-Verzeichnis. Ich bin mit apache-storm-0.9.2-ausbrüten.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Sturm framework verwendet seine eigene Protokollierung. Ihre Protokolle werden wahrscheinlich am Ende in den logs dir, wo storm installiert ist({Sturm-DIR}/logs). Finden Sie die Sturm-Protokoll Eigenschaften {- Storm-DIR}/logback/cluster.xml. Es nutzt logback nicht log4j
Ich würde empfehlen, mit SLF4J für Ihre Anmeldung innerhalb von storm. Sie wahrscheinlich bekommen konnte, LOG4J arbeiten, aber Sie müssen zusätzliche Einstellungen auf jedem Knoten im cluster. Seit dem Sturm hat das für dich schon, ich weiß nicht wirklich den Punkt sehen.
In Ihrem Projekt, fügen Sie diese maven-Abhängigkeiten (slf4j-simple für Ihre unit-tests!):
Dann, in Ihrem Topologien/Ausgießer/Schrauben bekommst du nur den Logger:
In meiner Umgebung, etwas INFO und vor angemeldet ist, um Datei-und, noch wichtiger, sichtbar im Sturm UI -. Sie müssen nur klicken Sie auf Ihrem Auslauf/Bolzen und klicken Sie dann auf die port-Nummer, gehen Sie auf die log viewer-Seite.
Wenn Sie wollen, um die tatsächlichen Dateien, dann können Sie sammeln Sie aus jeder Knoten (meine sind in
/var/log/storm/
).