2017-09-29 4 views
2

私はサードパーティのライブラリに依存するSpringブートプロジェクトを持っています。このライブラリーは、ロギングにLog4j2でSLF4Jを使用し、パターン・レイアウトが定義されたlog4j2.xmlを持っています。依存関係のログパターンを無視する

この依存関係のパターンレイアウトは、アプリケーションのパターンとして使用され、application.propertiesに定義されているレイアウトは無視されます。

このサードパーティのlibのソースコードを変更できない場合、log4j2.xmlを無視するために私のアプリケーションを設定することは可能ですか?

+0

ビルドツールとしてMavenを使用していますか?その場合、サードパーティライブラリがロガー実装を引き出すのを除外することができます。以下の解決策があなたのために働くかどうか確認できますか? com.abc thirdPartyArtifact org.slf4j SLF4J-log4j12 samo

答えて

1

あなたが試みることができる1つの解決策は、独自のlog4j2設定ファイルを定義し、そのパスをlog4j.configurationFileシステムプロパティに指定することです。独自のlog4j2構成ファイルを定義すると、必要なロギングの量とパターンを制御できます。

この背後にある理由がある - Log4jが起動すると、それはすべてのConfigurationFactoryプラグインを見つけて最低から最高から加重順序でそれらを整理しようとします。 log4j2 Automation Configurationのように、システム・プロパティーlog4j.configurationFileを設定すると、最も重視されます。

log4jがこのシステムプロパティを使用する構成ファイルを検出した場合、従属ライブラリに存在するlog4j2.xmlファイルを見つけるためのクラスパスはスキャンされません。

関連する問題