2012-02-02 9 views
27

log4jを使用して例外をログに記録しています。ロガーでスタックトレースを取得する

try { 

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

しかし、私が記録されます内容は、次のようになります:

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 

しかし、私は期待する内容は次のとおりです。

私は私のコードは次のようになります何でも、私は e.printStackTrace();
で取得ログインします
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) 

私はe.getMessage()e.getStackTrace();を試しましたが、完全なスタックトレースは取得できません。助言がありますか?次の2つの引数形式

log.error("my logging message", exception) 

を使用する必要が

答えて

1

実際には、フルタイムのスタックトレースの印刷を妨げるlog4jです。ただし、エラーメソッドの2番目のパラメータとして例外を設定する必要があります。

5
にあなたのloggingステートメントを変更し

​​
関連する問題