4

我的 web.config 文件中有以下配置,但是如何将这些信息分别记录到data.txtC general.txt# 中?

谁能为我提供一些示例代码?

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/general.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
  <file value="App_Data/Logs/data.txt" />
  <appendToFile value="true" />
  <maximumFileSize value="2MB" />
  <rollingStyle value="Size" />
  <maxSizeRollBackups value="5" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"  />
  </layout>
</appender>
4

1 回答 1

4

在您的应用程序中,理想情况下,您应该以相同的方式记录常规和数据,只是使用不同的记录器。在配置中,您有几个选项如何将传入的日志消息“路由”到不同的附加程序。

首先是伐木者本身。根据您的应用程序在类和命名空间方面的组织方式,您可以根据命名空间层次结构以分层方式组织记录器。然后,您可以将层次结构中的不同分支转到不同的附加程序。阅读此处的级别继承部分。

除了记录器层次结构之外,您还可以使用任何名称作为记录器名称。因此,对于应用程序的一般部分,您可以使用名为“general”的记录器。

可以用来控制日志消息流的下一件事是使用过滤器。您可以根据记录器名称、级别、属性等过滤消息,也可以实现自己的过滤器。

这是一个示例,展示了如何使用 logger 元素和过滤器将常规和数据路由到 appender。我们将根元素(接收所有日志消息)路由到数据附加器。在数据追加器中,我们过滤掉来自通用记录器的所有消息。

此外,我们将通用记录器路由到通用附加程序。

<appender name="GeneralLog" type="log4net.Appender.RollingFileAppender">
    ...
</appender>

<appender name="DataLog" type="log4net.Appender.RollingFileAppender">
    <filter type="log4net.Filter.LoggerMatchFilter">
        <loggerToMatch value="general" />
        <acceptOnMatch value="false" />
    </filter>
    ...
</appender>

<root>
    <level value="DEBUG" />
    <appender-ref ref="DataLog" />
</root>

<logger name="general">
    <level value="WARN" />
    <appender-ref ref="GeneralLog" />
</logger>
于 2010-03-09T08:40:52.990 回答