2012-10-15 20 views
5

Mam pewien specyficzny problem z logback. Przeprowadziliśmy migrację z log4j do logback i wszystko wydaje się być w porządku, ale mamy klasę wyjątków MultiCauseException. Jak można się domyślić - może występować więcej niż jeden wyjątek przyczyny, więc problem jest następujący: nie mogę ręcznie formatować stosu, aby zobaczyć wszystkie przyczyny.Logback - niestandardowe wyjście dla wyjątków

Dlaczego to działało. Log4j użył metody printStackTrace() i można ją zastąpić w trybie MultiCauseException, a problem zniknął. Ale logback używa własnych metod i nie wiem, jak je zastąpić.

Chcę poprawnie zarejestrować wszystkie przyczyny.

W klasie mam

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

And

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

Z której wersji Logback korzystasz? – fglez

+0

1.0.7 - najnowsze w tej chwili – Edd

+0

Postanowiłem zrobić stos gruszkowy "samolot" (teraz "spowodowany przez" tak naprawdę nie oznacza przyczyny). Ale pytanie nie jest naprawdę zamknięte ... Tak, mój angielski jest okropny, przepraszam za to :) – Edd

Odpowiedz

1

Logback ma coś, co nazywa Layouts że jest suppoesed zdarzeń formatu do ciągów. Ale nadal uważam, że powinieneś być w stanie skonfigurować go za pomocą PatternLayout

+0

Dzięki. Ale w tym przypadku muszę zmodyfikować plik konfiguracyjny, aby zastąpić standardowy układ na mój własny. A kiedy dodam mój wyjątek w innych klasach, muszę ponownie zmodyfikować aplikantów. To jest sugestia, ale będzie lepiej, jeśli mogę zmodyfikować tylko klasę MultiCauseException (lub dodać coś, ale raz) – Edd