Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Log4net 如何在dll中配置多个记录器_Log4net_Log4net Configuration - Fatal编程技术网

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

Log4net 如何在dll中配置多个记录器,log4net,log4net-configuration,Log4net,Log4net Configuration,我是log4net新手,当一个dll中有多个记录器时,我不太确定如何正确设置app.config。是的,但我想知道如果有10-20个不同的伐木工人,是否有更简单的方法。也可能是我不明白这一点 <!-- ALL|DEBUG|INFO|WARN|ERROR|FATAL|OFF --> <root> <level value="Error"/> <appender-ref ref="RollingLogFileAppender"/> </r

我是log4net新手,当一个dll中有多个记录器时,我不太确定如何正确设置app.config。是的,但我想知道如果有10-20个不同的伐木工人,是否有更简单的方法。也可能是我不明白这一点

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

<logger name="NHibernate">
  <level value="ERROR" />
</logger>
好的,让我们假设dll使用以下记录器(实际上大约有20种不同的语句,如下所示):

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

<logger name="NHibernate">
  <level value="ERROR" />
</logger>
private static readonly ILog log=LogManager.GetLogger(typeof(XmlConfiguration));
private static readonly ILog log=LogManager.GetLogger(typeof(ClassValidator));
这是否意味着我需要在app.config中执行类似的操作(为了简洁起见,我省略了appender)

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

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


我是否可以对其进行配置,使特定dll或部分命名空间公开的每个记录器(dll中的记录器位于几个不同的命名空间下,但有一个共同的根命名空间)都指向同一个日志源(文件、控制台等)?

是的,您是正确的。通过配置多个记录器,可以为不同的DLL设置不同的登录级别:

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

<logger name="NHibernate">
  <level value="ERROR" />
</logger>
以下是我成功使用的一个示例:

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

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

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

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

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

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