2011-05-10 19 views
55

SLF4Jを使用してエラーメッセージと例外を記録する正しい方法は何ですか?SLF4Jでプレースホルダを使用して例外とメッセージを記録する方法

私はこれをやってみましたが、例外スタックトレースが印刷されることはありません。この場合

logger.error("Unable to parse data {}", inputMessage, e);

私はinputMessageだけでなく、例外スタックトレースをログアウトして{}を移入します。私はこれを行うには見ることができます

唯一の方法は、これを行うには、次のようになります。きれいではありません

logger.error("Unable to parse data " + inputMessage, e);

を。

答えて

94

SLF4Jバージョン1.6では、SLF4Jは最後のパラメータ、つまり例外として解釈します。古いバージョンのSLF4J APIを使用している必要があります。

+0

それを指摘してくれてありがとうございます。 – pjp

+5

これはJavadocで記述されていますか? http://www.slf4j.org/apidocs/org/slf4j/Logger.html – Scot

+0

私はあなたを信じていますが、@Scotのように、私はこの動作が文書化されることを望んでいました。 – Stephan

0

SLF4Jバージョン1.7でも動作します。したがって、古いバージョンに劣化させる必要はありません。

+0

これは答えよりも多くのコメントです。 –