3

以下のシナリオの処理方法を教えてください。

現在の Web アプリ : log4j.propertes/WEB-INF/classesを webapp のフォルダーに配置しました。

達成したい: log4j.propertiesを外部の場所に配置し、Webアプリケーションから参照して、戦争を再構築せずにいつでもログの場所を変更できるようにします。

$CATALINA_HOME/propdirwebapp1/log4j.properties $CATALINA_HOME/propdirwebapp2/log4j.properties

複数のアプリケーションを展開している場合は、解決策を提案してください。サーバーにアプリケーションが 1 つしかデプロイされていない場合は、解決策を提案してください

4

4 に答える 4

7

私の場合、web.xml追加Log4jConfigListenerしたところ、うまくいきました。log4jRefreshIntervalここではオプションです。

<context-param>
    <param-name>log4jConfigLocation</param-name>
    <param-value>file:/<your-path-here>/log4j.properties</param-value>
</context-param>
<context-param>
    <param-name>log4jRefreshInterval</param-name>
    <!-- Refresh log4j configuration every 5 minutes. -->
    <param-value>300000</param-value>
</context-param>

<listener>
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
于 2013-10-30T15:25:08.247 に答える
0

log4j.properties を直接変更して tomcat を再起動する代わりに、war ファイルを再構築する必要はありません。

于 2012-12-30T06:58:15.627 に答える
0

$CATALINA_BASE/conf/catalina.properties の shared.loader プロパティにディレクトリを追加できます。

shared.loader=conf/myapp/

次に、このディレクトリに log4j.properties を配置します。

しかし、2 つの制約があります。

1) log4j.properties ファイルがある場合、そのファイルがWEBINF/classes最初にロードされます

2) このディレクトリはすべての Web アプリケーションで共有されるため、すべての Web アプリケーションに対して 1 つの log4j.properties ファイルしか存在できません。

于 2012-12-30T13:17:33.783 に答える