アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
現在、tomcat5.5でservletを動作させています。動作ログ(デバッグレベル)を出力させるためにorg.apache.commons.logging.impl.Log4JLoggerを使用しています。
ところがlog4j.xmlの設定で出力レベルを"debug"とするとdigesterやConvertUtilBeanなどのデバッグレベルログが勝手に出力されてしまい、本来出力させたいデバッグログが埋もれてしまいます。
これらの不要なデバッグレベルログを抑制する方法をご存じの方よろしくお願いいたします。

以下、log4j.xmlです(抜粋)
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>

<appender name="stdout" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p (%F:%L) - %m%n" />
</layout>
</appender>

<appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="log/trace.log"/>
<param name="Append" value="true" />
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p (%F:%L) - %m%n" />
</layout>
</appender>

<category name="sample">
<priority value="trace"/>
</category>

<root>
<priority value="trace" />
<appender-ref ref="stdout" />
<appender-ref ref="fileAppender" />
</root>

A 回答 (1件)

他クラスからのログを抑制することはできませんが、loggerタグを複数用意して出力先を切り替えてやればいいのではないでしょうか。


例えばこのように。

<root>
<appender-ref ref="stdout" />
</root>
<logger name="hoge">
<appender-ref ref="fileAppender" />
</logger>

外していたらすみません。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
質問の直後にlog4jの設定ファイルを理解したのですがcategoryタグがsampleとなっていて該当するパッケージは出力されず、root(全て適用)だけで動作している状態でした。よって、出したくないログまで出ていました。
rootのレベルをwarnにして出力されないようにしました。

<category name="com.hogehoge.appli">←ここをきちんと設定した
<priority value="debug"/>
</category>

<root>
<priority value="warn" />
<appender-ref ref="stdout" />
<appender-ref ref="fileAppender" />
</root>

お礼日時:2007/01/31 14:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!