2012-03-06 7 views
3

私はAxis2とJetty Webサーバーも使用するアプリケーションでLog4jを使用しています。Log4j Loggerの1つのレベルのみを除外します

デバッグの優先順位にあるとき、これらのクラスをログから除外するようにLog4Jプロパティファイルを構成しました。しかし、私がこれをしたとき、他の優先メッセージもメインロガーから除外され始めました。

私のクラスからデバッグログをロギングしている間に、これらのクラスからINFOログだけをログに記録するようにLog4jに指示する方法はありますか?

#Jetty Server and Axis2 
log4j.category.org.apache.axiom=DEBUG 
log4j.additivity.org.apache.axiom=false 
log4j.category.org.apache.axis2=DEBUG 
log4j.additivity.org.apache.axis2=false 

################# MAIN LOGGER ################# 
log4j.rootCategory=DEBUG, mainLogger 

#File configuration 

をしかし、私が言ったように、この構成は、メインロガーからINFOメッセージを除外する:

は、ここで私がやっていることです。 INFOにrootCategoryを設定

+0

質問が分かりません。例を挙げて、あなたが望むものを拡大してみてください。 – skaffman

答えて

4

いいえ、ルートレベルをDEBUGに設定し、

log4j.category.org.apache.axiom=INFO 
log4j.category.org.apache.axis2=INFO 

また、加算値をfalseに設定しないでください。

最初から始めようとしているときは、より現代的なXML設定フォーマットをすぐに使いたいかもしれません。そこには、次のようになります:

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

<appender name="FILE" class="org.apache.log4j.RollingFileAppender"> 
... 
</appender> 

<category name="com.apache.axiom"> 
    <priority value="INFO" /> 
</category> 

<root> 
    <priority value ="DEBUG" /> 
    <appender-ref ref="FILE" /> 
</root> 

</log4j:configuration> 
+0

ありがとうございます。それが私の問題を解決しました。私はそれをXMLフォーマットへの移行のリストに入れます。 – lcguida

0

は、あなたがあなたのログレベルを設定することができ、これを使用してDEBUG

+0

だから、私は2つのファイルを持っていますか? 1つはクラスと他のパッケージと一緒にありますか? – lcguida

-1

にあなたのクラス(例えばorg.myemployer.myapp)の良いと考えロガーを設定します。

import org.apache.log4j.Level; 

    public static Logger logger = null; 

    logger.setLevel(Level.DEBUG); 

Logger.getRootLogger().setLevel(Level.INFO); 
+0

私はプログラムでLog4Jを使用していないので、これは私の問題を解決しません。 – lcguida

関連する問題