2012-04-02 74 views
0

我想使用Log4J将特定性质的输出发送到与其他指定日志不同的日志。现在,我有一个log4j.properties,看起来有点像:如何将日志记录输出直接指向Log4J的不同记录器

log4j.rootLogger=INFO,catchall 
log4j.logger.SPECIAL_LOGGER=INFO,specials 
... catchall, specials appenders defined 

我想只有在specials附加目的地的从记录器SPECIAL_LOGGER输出 - 很容易的 - 但我不想从SPECIAL_LOGGER输出我catchall appender。我认为这意味着我不能做我所需要的日志级别。

任何想法?

回答

2

只需设置一个适当的可加性。将此行添加到您的log4j配置中。

log4j.additivity.SPECIAL_LOGGER=false 
+1

我不知道这个功能。一个很好的答案,完全符合我的需要。谢谢! – Brabster 2012-04-02 13:25:29

0

我在我的应用程序中使用它来使它工作。 你需要创建一个在您的log4j.xml单独的appender,这样的事情可能会有所帮助:

<appender name="myAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="file" value="logs/date.log" />  
    <param name="append" value="true" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{HH:mm:ss z} %-5p [%c{1}] [%t] %C:%L - %m%n" /> 
    </layout> 
</appender> 

在附加器使用不同的参数,可以你可以自定义它按照自己的方式。

+0

我已经在使用appender了,但是我需要从一个中排除。 @ adarshr的答案似乎是这个问题的焦点。 – Brabster 2012-04-02 13:26:14