- PR -

Log4J設定ファイルをwarの外に出して、Webアプリごとに分ける方法

1
投稿者投稿内容
finch
常連さん
会議室デビュー日: 2006/09/29
投稿数: 26
投稿日時: 2008-12-01 09:19
 Webアプリケーションサーバで動作させるWebアプリが複数あり(どのWebアプリもLog4Jを使用)、WebアプリごとにLog4J設定ファイルを別にして、さらに、Log4J設定ファイルをWarの外(できれば、任意のパス)に配置したい事があります。
 しかし、任意のパスに配置するとなると、Webアプリケーションサーバのシステムプロパティで指定する事になり、Log4J設定ファイルを共通にせざるを得ないですし、Webアプリごとに別々にするためには、Warの中に入れるしか無いように思われます。
 これに関して、何か手段をご存知の方がいらっしゃれば、ご教授お願い致します。
finch
常連さん
会議室デビュー日: 2006/09/29
投稿数: 26
投稿日時: 2008-12-01 18:11
 これですが、WebアプリのlistenerのcontextInitialized()に、以下のようなコードを入れる事で、可能でした。

コード:
java.net.URL url=null;
try {
  url = new java.net.URL("file:///C:/log4jxx.xml");
}
catch(Exception e){
  e.printStackTrace();
}
org.apache.log4j.xml.DOMConfigurator.configure(url);



 ただし、http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=30257&forum=12&6の対策で、Log4Jのjarを、Webアプリの共通ディレクトリに配置するようにすると、全Webアプリで、Log4J設定ファイルが共有されてしまいます。
(後で立ち上がった方が、上書きするイメージです)

 なお、上記のコードは、tomcat5.5だと、Webアプリの立ち上げ時に、下記が出ました。

コード:
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.


(ファイルだけ作ろうとした際に、出たメッセージのようです。)
1

スキルアップ/キャリアアップ(JOB@IT)