SpringのLog 4 jConfigListenerを使用してwebAppKeyの変更に注意
1896 ワード
springを使用して前後して2つのモジュールを開発し、単独でテストするのは正常です.また、前後してオンラインで実行し、Tomcatを起動した後も常に初期化に失敗しているモジュールがあり、tomcat管理コンソールで手動で起動する必要があります.長いこと探しても原因が見つからなかった.その後、管理者はTomcatを再起動するたびにこのモジュールが実行されず、多くの問題と面倒を引き起こした.今日はわざわざ他のtomcatログファイルを見て、やっと問題点を発見した.元はLog 4 jConfigListenerだった.サービスを再起動することなく、印刷ログのレベルをいつでも調整するために使用します.意外に便利さを享受していないで、かえって多くの問題が発生して、自分が少しよく研究していないことを責めるしかありません.
web.xml
log4j.properties構成
実際に注意しなければならないのは、アプリケーションサーバの下にspringを使用するLog 4 jConfigListenerがweb環境におけるwebAppRootKey値を変更する必要があることです(この値は、実際にはwebアプリケーションのルートディレクトリが環境変数名であり、log 4 jプロファイルにwebディレクトリに対するパスがあれば書く必要はありません).
さもないと2つのデフォルト値web.rootは環境変数で競合し、2番目のアプリケーションの起動に失敗します.
web.xml
<context-param>
<param-name>webAppRootKey</param-name>
<param-value>message.web.root</param-value>
</context-param>
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4j.properties構成
layoutPattern=[%d{HH:mm:ss}] %-5p : %m%n
log.file=${message.web.root}/logs/app.log
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=${log.file}
log4j.appender.logfile.Append=true
log4j.appender.logfile.DatePattern='.'yyyyMMdd
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=${layoutPattern}
実際に注意しなければならないのは、アプリケーションサーバの下にspringを使用するLog 4 jConfigListenerがweb環境におけるwebAppRootKey値を変更する必要があることです(この値は、実際にはwebアプリケーションのルートディレクトリが環境変数名であり、log 4 jプロファイルにwebディレクトリに対するパスがあれば書く必要はありません).
さもないと2つのデフォルト値web.rootは環境変数で競合し、2番目のアプリケーションの起動に失敗します.