2016-07-02 5 views
0

Ich fragte mich, ob es möglich ist, einen Logstack mit log4j zu erstellen, der nur protokolliert würde, wenn ein definierter Loglevel auftritt. Zum Beispiel: Wir haben wirklich große Logfiles und müssen viel loggen, um herauszufinden, wie der Benutzer zu diesem Fehler gekommen ist. Aber wir brauchen diese Informationen nur, wenn ein Fehler auftritt und nicht für jeden Benutzer.Ist es möglich, Loglevel zu protokollieren, wenn ein Fehler in Java mit log4j auftritt?

Gibt es eine Möglichkeit, dies in log4j zu handhaben, ohne selbst aktiv zu werden?

Antwort

0

Leider gibt es keinen Standardmechanismus, mit dem Sie einen Logstack in log4j erstellen und ihn nur dann protokollieren können, wenn Sie sich später dazu entschließen (wenn ein Fehler auftritt).

Sie könnten jedoch solche Funktion mit Hilfe von Filter s implementieren (ja, indem Sie selbst aktiv sind). Ein Filter kann Nachrichten in seinem Puffer stapeln (er muss thread-lokal sein oder eine andere Technik verwenden, um den Stapel mit dem Kontext zu verknüpfen), bis er entweder erkennt, dass der Stapel gelöscht werden muss und ein neuer gestartet wird (durch einen Marker, der a anzeigt neue Benutzeranforderung) oder dass ein Fehler auftritt und der Stack in das Protokoll geleert werden muss.

+0

Danke, das habe ich schon vermutet, wollte aber sicher sein – antii

Verwandte Themen