2011-04-19 83 views
1

我是log4net的新手,我不太清楚如何在dll中有多个记录器时正确设置我的app.config。那么我做,但我想知道有10-20个不同的记录器时是否有更简单的方法。也可能是我不明白这一点。如何在dll中配置多个记录器

好了,所以我们说的DLL使用下面的记录器(它实际上是大约20个不同的语句是这样):

private static readonly ILog log = LogManager.GetLogger(typeof(XmlConfiguration)); 
private static readonly ILog log = LogManager.GetLogger(typeof(ClassValidator)); 

这是否意味着我需要做这样的事情在我的app.config(我有为简洁起见省略了appender)?

<logger name="XmlConfiguration" additivity="false"> 
    <level value="DEBUG"/> 
    <appender-ref ref="FileLog"/> 
</logger> 

<logger name="ClassValidator" additivity="false"> 
    <level value="DEBUG"/> 
    <appender-ref ref="FileLog"/> 
</logger> 

我可以配置它在某种程度上使得由一个特定的DLL或部分的命名空间暴露的每个记录(在DLL记录器是在几个不同的命名空间,但都有一个共同的根命名空间)都去到相同的日志源(文件,控制台等)?

回答

2

是的,你是对的。您可以通过配置多记录器设置为不同的dll不同的登录等级:

这里是我已经成功地使用一个例子:

<!-- ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF --> 
<root> 
    <level value="Error"/> 
    <appender-ref ref="RollingLogFileAppender"/> 
</root> 

<logger name="NHibernate"> 
    <level value="ERROR" /> 
</logger>