2017-07-10 7 views
0

ログには例外名:NullPointerExceptionが表示されますが、例外スタックは表示されないため、エラーの原因を突き止める。例外をキャッチしてログに記録すると、ログに例外スタックではなく例外名が表示されます。

ログに例外スタックが表示されなかった理由を教えてください。どうすればいいですか?そして、ログシステムは、log4jのシステム

エラーログだけが表示されます。java.lang.NullPointerExceptionが

答えて

0

使用logger.catching(t)またはパラメータとしてt.getStackTrace()を追加します。例外があります。

logger.error(<A String>, <A Object>)を使用する場合、log4jは単にオブジェクトのtoStringメソッドを使用します。

+0

これは[this javadoc](http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Logger.html)とは異なります。あるいは、あなたは別のクラスを見ていますか? – ajb

+0

私の悪い、私はlog4j2を考えていた。 StackTraceが設定されている場合、デバッガをチェックインしていますか?手動でこの例外をスローしましたか? – secustor

0

Log4jを使用していますか?はいの場合、正しい2つのパラメーターメソッドを実際に使用しています。スタックトレースも同様に出力されます。エラーについてはdocsを参照してください。http://logging.apache.org/log4j/1.2/index.html

スタックトレースが必要な場合は、これを試してください。

StringWriter sw = new StringWriter(); 
ex.printStackTrace(new PrintWriter(sw)); 
String stacktrace = sw.toString(); 
log.error(stacktrace); 

しかし、私はあなたの実装に固執することをお勧めします。

関連する問題