如何在dll中配置多个记录器

时间:2011-04-19 12:29:08

标签: log4net log4net-configuration

我是log4net的新手,当dll中有多个记录器时,我不太确定如何正确设置我的app.config。好吧,但是我想知道当有10-20种不同的记录器时是否有更简单的方法。也许我只是不理解这一点。

好的,让我们说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中的记录器在几个不同的命名空间下但具有公共根命名空间)公开的每个记录器都会转到相同的记录源(文件,控制台等)吗?

1 个答案:

答案 0 :(得分: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>