我在我的項目中有兩個appender,文件和控制檯。我想配置我的應用程序,以這樣進行:Log4j配置
全部用名字記錄器 「my.app。*」:
1. log events DEBUG and higher to fileA
2. log events DEBUG and higher to fileB
所有其他記錄器:
1. log events WARN and higher to fileA
2. log events DEBUG and higher to fileB
理想的情況下,配置看起來是這樣的:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="fileA" class="org.apache.log4j.FileAppender">
<!-- configuration -->
</appender>
<appender name="fileB" class="org.apache.log4j.FileAppender">
<!-- configuration -->
</appender>
<logger name="my.app" additivity="false">
<level="DEBUG"/>
<appender-ref ref="fileA"/>
</logger>
<logger name="" additivity="true">
<level="DEBUG"/>
<appender-ref ref="fileB"/>
</logger>
<root>
<level="WARN"/>
<appender-ref ref="fileA"/>
</root>
</log4j>
但是,此設置會導致名爲「my.app」的記錄器僅記錄到控制檯,而其他所有r記錄器在WARN和更高版本上登錄到控制檯。本質上,<logger name="">
被忽略。有沒有另一種方法來模擬log4j的這種行爲?
PS。我爲窮人格式道歉,真的在努力得到這個工作今晚:/
你忘了在根元素中鍵入第二個appender? – 2012-02-03 07:55:55
logger name =「」什麼都不做,rootlogger會做你認爲name =「」的事情。 – oers 2012-02-03 07:57:24
@guido:如果我在根中插入一個ref到fileB,那麼所有其他的記錄器只會在WARN和以上的地方寫信給它,我希望他們在DEBUG上寫入它並且在 – Josh 2012-02-03 08:01:36