2012-10-15 8 views
5

Ich habe ein bestimmtes Problem mit dem Logback. Wir haben von log4j in Logback migriert und alles scheint in Ordnung zu sein, aber wir haben eine Ausnahmeklasse MultiCauseException. Wie Sie vermutet haben - es kann mehr als eine Ursache Ausnahme haben, so ist das Problem: Ich kann StackTrace nicht manuell formatieren, um alle Ursachen zu sehen.Logback - benutzerdefinierte Ausgabe für Ausnahmen

Warum es funktionierte. Log4j verwendet die Methode printStackTrace() und Sie können sie in MultiCauseException überschreiben und das Problem ist weg. Aber Logback verwendet seine eigenen Methoden und ich weiß nicht, wie ich sie ersetzen soll.

Ich möchte alle Ursachen korrekt protokollieren.

In der Klasse habe ich

MultiCauseException nextInChain; // my cause 
Throwable inner; 
     // the real exception (inner.getCause() can be != null - must be logged) 

Und

@Override 
    public Throwable getCause() { 
     return nextInChain; 
    } 
+0

konfigurieren Welche Version von Logback verwenden Sie? – fglez

+0

1.0.7 - die neueste im Moment – Edd

+0

Ich habe beschlossen, Stack complyly "Ebene" zu machen (Jetzt bedeutet "verursacht durch" nicht wirklich die Ursache). Aber die Frage ist nicht wirklich geschlossen ... Ja, mein Englisch ist schrecklich, tut mir leid, dass :) – Edd

Antwort

1

Logback hat genannt etwas Layouts, die Format Ereignisse in Strings suppoesed wird. Aber ich glaube immer noch, Sie sollten in der Lage sein, es mit PatternLayout

+0

Danke. Aber in diesem Fall muss ich die Konfigurationsdatei ändern, um das Standardlayout zu meinem eigenen zu ersetzen. Und wenn ich meine Ausnahme in anderen Klassen hinzufüge, muss ich Appender erneut ändern. Das ist ein Vorschlag, aber es ist besser, wenn ich nur die MultiCauseException-Klasse modifizieren kann (oder etwas hinzufügen kann, aber nur einmal) – Edd

Verwandte Themen