【问题标题】:log information into different log files将信息记录到不同的日志文件中
【发布时间】:2010-03-08 23:17:48
【问题描述】:

我的 web.config 文件中有以下配置,但是如何在 C# 中将信息分别记录到 data.txtgeneral.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>

【问题讨论】:

    标签: log4net log4net-configuration


    【解决方案1】:

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

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

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

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

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

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

    <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>
    

    【讨论】:

      猜你喜欢
      • 2013-06-10
      • 1970-01-01
      • 2021-08-27
      • 2010-10-21
      • 1970-01-01
      • 2018-06-01
      • 1970-01-01
      • 2019-12-04
      • 2020-12-25
      相关资源
      最近更新 更多