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