2012-02-02 14 views
27

Tôi đang sử dụng log4j để đăng nhập ngoại lệ của mình. Tôi muốn đăng nhập bất cứ điều gì tôi nhận được trong e.printStackTrace();
Mã của tôi trông như thế này:Bắt stacktrace trong logger

try { 

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

Nhưng nội dung tôi thường xuyên bị thoát trông như sau:

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 

Nhưng nội dung tôi mong đợi là:

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) 

Tôi đã thử e.getMessage(), e.getStackTrace(); tuy nhiên tôi không nhận được toàn bộ stacktrace. Bất kỳ đề xuất?

Trả lời

1

Thực tế là log4j ngăn cản việc in toàn bộ stacktrace. Tuy nhiên, bạn nên đặt ngoại lệ làm thông số thứ hai cho phương pháp lỗi.

5

Thay đổi tuyên bố đăng nhập của bạn thành:

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