Java Web アプリケーションをデプロイするサーバーに応じて、さまざまなレベルでログを記録できるようにしたいと考えています。たとえば、テスト サーバーでは DEBUG レベルでログを記録し、運用サーバーでは WARN レベルでログを記録したいと考えています。現在、log4.xml ファイルは WAR ファイル内にあります。Tomcat コンテキスト パラメーターを使用して、Web アプリのログ レベルを構成できるようにしたいと考えています。これは可能ですか?
環境変数とシステム プロパティを使用できることがわかりました。たとえば、${catalina.home}は解釈されます。これと同じ機能を Tomcat コンテキストのパラメータ値に代用できますか?
たとえば、log4j.xml スニペットは次のようになります。
<level value="${log.level}"
log.levelは %TOMCAT_HOME%/conf/context.xml で定義されています。
<Parameter name="log.level" value="DEBUG" />
上記を試してみましたが、うまくいかないようです。Google は、log4j 構成ファイルでのコンテキスト パラメーターの使用に関連する情報を私に提供していません。この SO の質問は、システム プロパティを使用して同様のことを行っていることがわかりましたが、Tomcat コンテキスト パラメータを使用していないため、私が望むものとはまったく異なります。log4j構成でコンテキストパラメータ値置換機能を利用できますか? 外部の log4j.xml ファイルを使用するなど、他のオプションを検討する必要がありますか?