2012-04-16 11 views
2

こんにちは。サーバーの起動時に実行され、私はweb.xmlにこのエントリを見つけるのSpringを使用してJavaプロジェクトのほとんどでは:web.xmlのorg.springframework.web.util.Log4jConfigListenerエントリを使用した初期化?

<listener> 
    <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
</listener> 

Log4jConfigListenerの目的は何ですか?

私の以前のプロジェクトでは、この設定も見ることができます。しかし、私はコードに私はこのクラスで行われた特別な何かを見つけることはありません、またはこのクラスで内部的に と呼ばれるさらなるクラスを見つけることができません。上記のコードスニペットの後ろにいくつかの良い目的がなければならないと確信しています。ここでは、ファイルにログを入れて、すべてのクラスで

は、エントリ

private static final Log log = LogFactory.getLog(PoolManagerImpl.class); 
log.debug("Number of connection pools to create = [" 
    + connection.size() + "]"); 

私は私のweb.xmlエントリをコメントアウトしても、ロギングが正常に動作しています。それは何の目的ですか?

+0

http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/web/util/Log4jConfigListener.html – Bnjmn

+0

Bnjmn。実際には私の質問は、私のアプリケーションの作業は、このリスナーのエントリがなくても罰金ログですか? –

+0

Web環境でのカスタムlog4j初期化のためのブートストラップリスナーと言います。カスタム初期化は何をしていますか? –

答えて

6

Log4jConfigListenerは、Log4jの「サブシステム」を、必要に応じて直ちに「遅延設定」するのではなく、すぐにWebアプリケーションの起動時に初期化します。

私の意見では、Log4JConfigListenerを使ってlog4jを明示的に初期化する主な利点は、サーブレットコンテキストパラメータを使用してlog4j構成ファイルの場所を設定できることです。アプリケーションの展開方法によっては、展開されたWARディレクトリの内部を掘り起こすことなく、実行時に何らかの管理者によって設定を変更することができます。

Log4jConfigListenerのjavadocを参照してください。さらに重要なのはLog4jWebConfigurerです。実際の作業と同じです。

+0

Charles Anthony。 Log4j "サブシステムでどのような初期化がLog4jConfigListenerによって行われたのか分かりますか?どんな高レベルのアイデアですか? –

+0

@MSachあるレベルではjavadocが説明されていますが、基本的には"ファイルX "ここでXはweb.xmlから抽出されるかデフォルトになります。また、設定ファイルを"見る "ことができます。 –

関連する問題