1

我是 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 中执行类似的操作(为简洁起见,我省略了附加程序)?

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

4

1 回答 1

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>

于 2011-04-19T12:35:33.773 回答