2011-12-05 16 views
0

Tomcat内の同じソースツリーから2つのWebアプリケーションを構築しました。それぞれは、/webapp/WEB-INF/classes/log4j.propertiesをロードするPropertyConfiguratorを使用します。2つのWebアプリケーションを2つの異なるファイルに記録する

現在のTomcatが容器全体に1つのコンソールアペンダを使用するように構成され、両方のアプリのlog4jsはちょうどコンソールに書き込みされています

log4j.rootCategory=info, A1 
log4j.appender.A1=org.apache.log4j.ConsoleAppender 

これは私が容器全体のために一つの大きなcatalina.outで終わることを意味します。

それぞれのアプリケーションlog4jsを独自の別々のローリングファイルに追加するように設定したいと思います。

log4j.properties内でシステムプロパティの置換を使用できることはわかっていますが、VM全体で共有されるシステムプロパティではないため、コンテナ内の2つのアプリケーション間でスレッドセーフではありませんか?

誰かが2つのアプリケーションを別々のファイルに、好ましくはログのファイル名内のアプリケーションのコンテキスト名を使用してログを記録するように設定できるきちんとしたソリューションを提案できますか?

ありがとう、p。

答えて

0

tomcatディレクトリにlog4j.jarとcommons-logging.jarはありますか?あなたが使っているTomcatのバージョンは?

common/lib内にこれらのjarのコピーが1つしかない場合は、必ずtomcatのlog4j.propertiesファイルがサーバーとWebアプリケーションの両方に設定されているため、catalina.logはすべてのログで使用されます。

あなたのケースでこのシナリオが有効であると仮定して、両方のWebアプリケーションのlog4j.jarとcommon-logging.jarをWEB-INF/libの下にコピーします。

ログのファイル名内でアプリケーション名を使用する場合は、アプリケーションごとに別々のlog4j.propertiesファイルが使用されるため、log4j.propertiesファイルの名前をFileAppenderまたはRollingFileAppenderに対して指定します。

関連する問題