2011-05-19 53 views
1

我已经实现了一个log4j.xml文件,它有两个记录器。 EventLogger和ErrorLogger都登录到文本文件。此外,我创建控制台appender并将其附加到根。我的问题是当我使用EventLogger或ErrorLogger时,它既写入控制台也写入文本文件。我需要避免这种情况。有人可以帮帮我吗。 继我已经向您展示了XML文件如何避免root appender附加到子记录器

<?xml version="1.0" encoding="UTF-8" ?> 
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
    <appender name="ErrorAPPENDER" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="./log/FIX5SvrError.log"/> 
     <param name="Append" value="true"/> 
     <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-4r [%t] %-5p %x - %m%n" /> 
     </layout> 
    </appender> 
    <appender name="EventAPPENDER" class="org.apache.log4j.DailyRollingFileAppender"> 
     <param name="File" value="./log/FIX5SvrEvent.log"/> 
     <param name="Append" value="true"/> 
     <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d{HH:mm:ss,SSS} %-4r [%t] %-5p %x - %m%n" /> 
     </layout> 
    </appender> 
    <appender name="ConsoleAPP" class="org.apache.log4j.ConsoleAppender"> 
     <param name="Target" value="System.out"/> 
     <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%m%n"/> 
     </layout> 
    </appender> 
    <logger name="ErrorLogger"> 
     <level value="debug"/> 
     <appender-ref ref="ErrorAPPENDER" /> 
    </logger> 
    <logger name="EventLogger"> 
     <level value="debug"/> 
      <appender-ref ref="EventAPPENDER" /> 
    </logger> 
    <root> 
     <priority value ="debug" /> 
     <appender-ref ref="ConsoleAPP" /> 
    </root> 
</log4j:configuration> 

回答

3

对于其输出你不想渗透,你需要设置加=虚假记录仪。

<logger name="ErrorLogger" additivity="false"> 
    <level value="debug"/> 
    <appender-ref ref="ErrorAPPENDER" /> 
</logger> 
<logger name="EventLogger" additivity="false"> 
    <level value="debug"/> 
     <appender-ref ref="EventAPPENDER" /> 
</logger> 

the manual中搜索可加性以了解更多详情。

+0

它没有以上述方式工作。但我将它改为 。现在它工作感谢兄弟的想法.. – nath 2011-05-19 09:24:13

+0

嘿嘿。好电话...我确实把属性放在了错误的地方。我更新了答案以避免混淆其他人。谢谢! – stevevls 2011-05-19 09:28:20

相关问题