web-dev-qa-db-ja.com

log4j 1.xとlog4j 2の混在

Log4j2を使用して作成された新しいアプリケーションがあり、その新機能のいくつかを利用しています。使用するライブラリの1つは少し古く、log4j1.xで構築されています。アプリケーションの新しいコードがログに書き込むのに、古いライブラリのコードがログに書き込まないという問題があります。古いライブラリの何かのサブクラスであり、古いライブラリのコードによっても呼び出されるクラスが1つありますが、このコードもログに書き込まれません。 log4j2バージョン2.0.2を使用するようにアプリケーションを構成し、古いライブラリをmaven依存関係として参照するときにlog4jを明示的に除外しました。

古いライブラリのコードを新しいコードと同じファイルにログインさせるにはどうすればよいですか?

古いライブラリを書き直すことは、最後の手段と考える必要があります

Log4j2にlog4j-1.2のブリッジが含まれていることをご存知ですか?古いlog4j-1.2.17.jarを削除して使用し、次の3つのjarを含めることができます。

  • log4j-api-2.x.jar
  • log4j-core-2.x.jar
  • log4j-1.2-api-2.x.jar

これにより、アプリケーションがlog4-1.2 APIに対して行うすべての呼び出しがlog4j2実装にルーティングされます。 FAQには があり、物事を明確にすることができます(クラスパスから古いlog4j-1.2 jarを削除することを忘れないでください!)

40
Remko Popma