1. ホーム
  2. ジャワ

SLF4Jarのパッケージが競合している。クラスパスが複数の SLF4J バインディングを含んでいます。

2022-02-25 22:37:24
<パス

SLF4Jarのパッケージが競合しています。クラスパスが複数の SLF4J バインディングを含んでいます。

ログがエラーレベルになるように設定しましたが、うまくいきません。

エラーの理由

springbootを導入したため、springbootのlogback-classicパッケージとsparkのslf4j-log4j12パッケージの間で、org/slf4j/impl/StaticLoggerBinder.classに関して競合が発生しているため。
このエラーの原因は、logbackログの開発者とlog4jの開発者が一心同体と言われており、springbootのデフォルトログは新しい方のlogbackログになっていることです。しかし、昔は人気のあるログはlog4jで、サードパーティーのツールにはlog4jが導入されているものが多くあります。

問題の落とし穴

もちろん最大の関心事は、隠れた問題がないことで、開発ツールで実行すれば、うん、問題ない、普通に起動する。

問題解決

解決方法は簡単で、jarパッケージの競合が発生するので、jarパッケージを除外すればいいのです。キーは、どのjarパッケージを除外することです 、ここでログバックログを使用する場合は、 slf4j-log4j12パッケージを除外する必要があることに注意してください、あなたがログバッククラシックパッケージを除外するlog4j12パッケージを使用した場合、 logback-classicパッケージを除外しないでください。
  ここでは、logback-classic パッケージを除外しています。

  slf4j-log4j12パッケージの除外は、こちらで確認できます。
springboot on Class パスに複数の SLF4J バインディングが含まれています。 .