7 Stimmen

gleichzeitige log4j

Ich habe meine eigene Logging-Engine, die die Protokolle in einem separaten Thread mit einer blockierenden Warteschlange schreibt. Um "Standardsoftware" zu verwenden, denke ich über den Wechsel zu log4j nach.

Ich möchte nicht, dass meine hochkomplexe Software durch Log-Befehle verlangsamt wird, die alles auf die Festplatte schreiben, sobald der Befehl aufgerufen wird. Kann log4j stattdessen als Dumpster verwendet werden?

7voto

skaffman Punkte 389758

Log4j ist die Logging-Implementierung auf den meisten JavaEE-App-Servern da draußen, das ist also eine gute Werbung für seine Gleichzeitigkeitsfähigkeiten.

Allerdings habe ich gesehen, dass Log4j 1.2 unter hohen Lastbedingungen blockiert. Nachforschungen ergaben eine erschreckend schlechte Synchronisation im Quellcode. Anscheinend wurde dies in Log4j 1.3 behoben, obwohl die Entwicklung daran verlangsamt oder ganz eingestellt wurde - ich habe das Gefühl, dass ein Großteil des Quellcodes nicht mehr zu retten war.

Wenn Sie jedoch die freie Wahl haben, sollten Sie Folgendes in Betracht ziehen Logback stattdessen der geistige Nachfolger von Log4j. Es wurde von Grund auf neu entwickelt und ist wahrscheinlich die bessere Option für Sie.

3voto

Nathan Hughes Punkte 90344

Überprüfen Sie log4js asynchroner Appender Er puffert die Protokollmeldungen und leitet sie über einen separaten Thread an die Appender weiter. Es könnte sein, dass Sie entscheiden, dass der log4j async appender nicht geeignet ist (hier sind einige Beschwerden darüber) können Sie jederzeit Ihren eigenen Appender erstellen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X