Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.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
.net 命令log4net执行其appender_.net_Log4net - Fatal编程技术网

.net 命令log4net执行其appender

.net 命令log4net执行其appender,.net,log4net,.net,Log4net,假设我在.log4net.config文件中有以下appender引用配置: <root> <level value="ALL"/> <appender-ref ref="ColoredConsoleAppender" /> <appender-ref ref="EventLogAppender"/> <appender-ref ref="RollingLogFileAppender" /> <appender

假设我在.log4net.config文件中有以下appender引用配置:

<root>
  <level value="ALL"/>
  <appender-ref ref="ColoredConsoleAppender" />
  <appender-ref ref="EventLogAppender"/>
  <appender-ref ref="RollingLogFileAppender" />
  <appender-ref ref="MyCustomAppender" />
</root>


log4net是否在单个线程(即调用应用程序用于调用ILog.*方法的同一线程)上串行调用这些追加器。如果是这样,它调用每个appender的顺序是什么?是否按照元素中定义的顺序执行?

根据这一点(在“自定义附加程序:添加目的地”一节中),log4net按照附加程序在配置文件中出现的顺序执行附加程序。此外,附加器也是同步执行的。我不知道作者是否是log4net专家,但这篇文章读起来已经足够好了。

虽然我找不到链接中所述内容的任何独立确认,http://www.devx.com/dotnet/Article/32096/1954,无论是在log4net网站上,还是通过进一步的谷歌搜索,我已经根据文章更改了配置文件中附件的顺序,如下所示

也许根元素是需要排序的关键元素,因为我也改变了log4net元素中appender元素的顺序

我的理由是,在严重故障场景中,将日志记录到windows事件日志将比写入文件更成功(可以说它是更重要的信息?)


<log4net threshold="ALL">
    <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender" >
        <!-- Make stuff go here -->
    </appender>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
        <!-- Make stuff go here -->
    </appender>
    <root>
      <appender-ref ref="EventLogAppender" />
      <appender-ref ref="RollingFileAppender" />
    </root>
</log4net>