2012-02-02 10 views
27

Używam log4j do rejestrowania moich wyjątków. Chcę zalogować cokolwiek uzyskać w e.printStackTrace();
mój kod wygląda następująco:Trwa zapisywanie stosu w rejestratorze

try { 

} catch(Exception e) { 
    log.error("Exception is:::" + e); 
} 

ale zawartość dostaję zalogowany wygląda następująco:

2012-02-02 12:47:03,227 ERROR [com.api.bg.sample] - Exception in unTech:::[Ljava.lang.StackTraceElement;@6ed322 
2012-02-02 12:47:03,309 ERROR [com.api.bg.sample] - Exception is :::java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 

ale zawartość Spodziewam się:

java.io.IOException: Not in GZIP format 
at java.util.zip.GZIPInputStream.readHeader(Unknown Source) 
at java.util.zip.GZIPInputStream.<init>(Unknown Source) 
at java.util.zip.GZIPInputStream.<init>(Unknown Source) 
at com.api.bg.sample.unGZIP(sample.java:191) 
at com.api.bg.sample.main(sample.java:69) 

Próbowałem e.getMessage(), e.getStackTrace(); jednak nie dostałem pełnego stosu. Jakieś sugestie?

Odpowiedz

1

Właściwie log4j uniemożliwia wydruk pełnego stosu stosów. Powinieneś jednak ustawić wyjątek jako drugi parametr metody błędu.

5

Zmień swoje oświadczenie logowania do:

log.error("Exception is: ", e);