2012-03-06 67 views
3

我在使用Axis2和Jetty Web服務器的應用程序中使用Log4j。不包括Log4j Logger的一個級別

我配置了Log4J屬性文件,以便在調試優先級時排除這些類的日誌記錄。但是當我這樣做時,其他優先信息也開始被排除在主記錄器之外。

有沒有一種方法可以告訴Log4j我只想從這些類中記錄INFO日誌,同時從我的類中記錄調試日誌?

這裏是我做了什麼:

#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消息。

+0

我不明白這個問題。嘗試用例子展開你想要的東西。 – skaffman 2012-03-06 12:39:59

回答

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 2012-03-06 13:20:30

0

設置rootCategory到INFO,設置你的類的apropriate記錄器(例如org.myemployer.myapp)到DEBUG

+0

布然後我會有兩個文件?一個與我的課程和其他包裝? – lcguida 2012-03-06 12:49:43

-1

此使用,你可以設置你的日誌級別:

import org.apache.log4j.Level; 

    public static Logger logger = null; 

    logger.setLevel(Level.DEBUG); 

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

因爲我沒有以編程方式使用Log4J,所以這並不能解決我的問題。 – lcguida 2012-03-06 13:21:16