1

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

私の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ファイルも取得しますが、何も入力されません。他のログにも表示されず、明らかなエラーはありません。何が起こっているのか分かりますか?

4

4 に答える 4

3

log4jが実際にそのlog4j.xml構成に使用しており、クラスパス上の別のファイルを使用していないことを確認しますか?

システムプロパティ-Dlog4j.debugを有効にして、log4jが使用している構成ファイルに関する情報を正確に出力できるようにします。

于 2009-05-27T19:39:44.290 に答える
0

この問題が発生したときcommon-logging.jar、展開アセンブリに追加することで問題を解決できました。

于 2012-04-13T08:59:20.837 に答える
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>
于 2009-05-27T19:06:25.403 に答える
0

次の行を追加してみてください:

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

massAppender構成に

そしてこの行

<priority value ="debug"/>

ルート定義内

于 2009-05-27T20:48:56.193 に答える