10

slf4j-log4j と log4j-over-slf4j の違いを教えてもらえますか? Java Web アプリケーションで使用する標準的なものはどれですか? 現在、クラスパスに両方があり、Web サーバーが発生を防止しようとしているため、実行時例外が発生していますStackOverFlowException

例外:

java.lang.IllegalStateException:
クラスパスで log4j-over-slf4j.jar と slf4j-log4j12.jar の両方を検出しました

4

2 に答える 2

24

slf4j-log4jは、slf4j の実装として log4j を使用しています。

log4j-over-slf4jにより、log4j API への呼び出しが slf4j に「ルーティング」されます。

これらの JAR を同時に使用することはできません。

どちらも使用する有効なライブラリであり、同等に「標準」であり、プロジェクトによって異なります。

一般に、プロジェクトで既に log4j を使用していて、すべての log4j ロガーを slf4j ロガーに更新することができない場合。log4j-over-slf4j は、slf4j をすぐに使い始めるためのクイック フィックスです。

ただし、プロジェクトが新規であるか、既存のロギング メカニズムがなく、slf4j を使用することを選択した場合は、slf4j を log4j にバインドする必要があることを指定するだけなので、slf4j-log4j が適しています。

そうは言っても、c12のコメントに同意します。log4j の使用をやめ、代わりに slf4j と logback を使用します。

于 2013-08-19T18:21:50.257 に答える
2

私のプロジェクトでorg.slf4j.impl.Log4jLoggerFactoryは、

activemq-all-5.7.0.jar

ありませんで slf4j-log4j12.jar

例外メッセージは私を誤解させます

于 2013-09-30T10:35:47.520 に答える