Glassfishサーバーでアプリケーションのログを設定しようとしています。私はSLF4jを使用してすべてを集約し、ファイルを書き込むためのLogbackバインディングを使用します。また、log4j-over-slf4j
,jul-to-slf4j
、jcl-over-slf4j
ライブラリをプロジェクトに追加しました。もちろんslf4j-api
とLogbackもあります。すべてのライブラリはプロジェクトWEB-INF/lib
とglassfish/lib/endorsed
にあります。JCLがSLF4j経由でGlassfishにログイン
したがって、アイデアはすべてをSLF4jにリダイレクトし、Logbackでログに記録します。私はテストのために、次の作品を持っているコードで
:jclLog.debug("Login JCL: Debug level");
jclLog.error("Login JCL: Error level");
log4jLog.debug("Login Log4j: Debug level");
log4jLog.error("Login Log4j: Error level");
slfLog.debug("Login SLF4j: Debug level");
slfLog.error("Login SLF4j: Error level");
実行後Logbackに構成されたログファイル内のLog4jとSLF4J OGログエントリがあります。しかし、JCLのエントリはありません。代わりにserver.logファイルにアクセスします。
問題は、なぜJCLエントリがGlassfishロガーでキャッチされ、どのように防止できるかということです。