slf4jに特定のロギングプロバイダ(私の場合はログバック)を強制的に使用させることはありますか?そのドキュメントのように:slf4jがログバックを使用するようにする
複数のバインディングがクラスパス上で発見された
SLF4J APIは1と同時に複数の基本的なログフレームワークと結合するdesingedされます。クラスパスに複数のバインディングが存在する場合、SLF4Jは警告を出力し、それらのバインディングの場所をリストします。 クラスパスで複数のバインディングを使用できる場合は、使用するバインドを1つだけ選択し、他のバインディングを削除します。たとえば、クラスパスにslf4j-> simple-1.6.6.jarとslf4j-nop-1.6.6.jarの両方があり、nop(>操作なし)バインディングを使用する場合は、slf4j-シンプルな - 1.6.6.jarクラスパスから。超束縛バインディングを削除できない場合、SLF4Jは依然として1つのロギングフレームワーク/実装とバインドします。バージョン1.6.6以降、SLF4Jは実際にバインドされているフレームワーク/実装クラスの名前を付けます。
注記SLF4Jが発する警告はそれだけです。警告です。私の場合は
私はlog4j.jar
、slf4j-log4j12.jar
、log4j-over-slf4j.jar
およびクラスパス内のすべてのlogbackの瓶を持っています。私はslf4j-log4j12.jar
とlog4j-over-slf4j.jar
を一緒に持つのは誤りだと知っていますが、私のプロジェクトは非常に大きく、maven依存関係を見つけたり除外したりするのは簡単ではありません。この場合、slf4jは警告を表示しませんでした。なぜなら我々はlogback configsしか使用しないからです。このジャーの地獄を理解するには1日かかりました。
私が欲しいのは、たとえば、JVM引数を使ってslf4jがlogbackを使用するようにすることです。警告を出力して、将来jarを除外することができます。
それは – madhead