2009-05-27 16 views
1

私はlog4jアプリケーション(webapp)ログをTomcat 6アプリケーションで動作させようとしています。私は私のWEB-INFディレクトリにlog4j-1.2.15.jar、WEB-INF/classesにlog4j.dtdとlog4j.xmlを持っています。Tomcat 6とlog4jアプリケーションのログ出力には出力がありません

のように私のlog4j.xmlに見える:私のサーブレットがパッケージ内にある

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" > 
<log4j:configuration> 
<appender name="massAppender" class="org.apache.log4j.RollingFileAppender"> 
    <param name="maxFileSize" value="100KB" /> 
    <param name="maxBackupIndex" value="2" /> 
    <param name="File" value="${catalina.home}/logs/mass.log" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}: %m%n " /> 
    </layout> 
</appender> 

<category name="com.company.mass"> 
    <priority value="DEBUG"/> 
    <appender-ref ref="massAppender"/> 
</category> 

<root> 
    <appender-ref ref="massAppender" /> 
</root> 

</log4j:configuration> 

ロガーは次のように宣言されている
package com.company.mass; 

private static Logger logger = Logger.getLogger(Handler.class); 

と上部に私のdoGet(...)メソッドがあります:

logger.error("foo"); 

私はTomcatでアプリケーションをデプロイし、サーブレットに行くと正しく動作します。私もmass.logファイルを取得しますが、何も入れません。他のログにも表示されず、明らかなエラーもありません。何が起きているのか?

+0

catalina.outログを確認しましたか? – Gandalf

+0

私はcatalina.outを持っていません。私のcataline.2009-05-27.logには標準的なスタートアップがあります。 –

答えて

3

あなたはクラスパス上の他のファイルのlog4jは、実際にあなたのlog4j.xmlそれはだのためのコンフィギュレーションを使用していることを確認し、ありませんか?

システムプロパティ-Dlog4j.debugを有効にして、使用している設定ファイルに関する情報をlog4jに出力します。私はこの問題私に遭遇したとき、あなたのmassAppenderの設定

このラインルート定義

+0

log4jが正しい設定値を読み込んでいるようです。 –

+0

ここでは愚かな疑問ですが、コードが実行されたときにロギングラインがヒットしているということは絶対に肯定的ですか?またbtw、appenderを2度追加すると(ルートと "com.company.mass"に)ログメッセージがアペンダーに2回送られます。 –

+0

愚かな質問ですが、良いものです。 Mavenが生成するデフォルトのindex.jspに当たっていました。このindex.jspは、私のserveltが生成したのとまったく同じ出力(Hello World)を同時に生成しました。ロギングが行われたページに移動します。 –

0

ルートロガーに優先順位が必要かどうかはわかりません。この設定を試してみてください

<category name="com.company.mass"> 
    <priority value="DEBUG"/> 
    <!-- no need to specify appender again here --> 
</category> 

<root> 
    <priority value="INFO"/> 
    <appender-ref ref="massAppender" /> 
</root> 
+0

残念ながら、それらの変更はそれを修正しませんでした。 –

0

てみてください展開アセンブリにcommon-logging.jarを追加することで解決できました。

+0

それは違いはありません。 –

+0

私のTomcat6には、 "massAppender"という設定ファイルもありません。 – djangofan

0

内部

<priority value ="debug"/> 

<param name="Threshold" value="ALL" /> 

:行を追加

関連する問題