1

我有以下 log4net 配置

  <log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="Logs\\CurrentLog.txt"/>
      <appendToFile value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/>
      </layout>
    </appender>
    <root>
      <priority value="ALL"/>
      <appender-ref ref="RollingLogFileAppender"/>
    </root>
  </log4net>

是否可以将来自不同程序集的事件记录在不同的文件中?例如,来自

Castle.Facility.NhibernateIntegration

如果不是这样,是否有更好的过滤事件的方法?
我不想将流限制为只有错误。

4

1 回答 1

1

记录器可以通过它们的名称进行配置。如果您遵循惯用的 log4net 实践,您的记录器将以其完整的Namespace.TypeName. 您可以通过两种方式将附加程序分配给记录器。

第一种是直接嵌入特殊的appender

<logger name="Castle.Facilities.NhibernateIntegration">
    <level value="INFO" />
    <appender name="CastleNhIntegrationAppender" type="...">
        <!-- put the full appender configuration here -->
    </appender>
</logger>

或者定义附加程序并在记录器中引用它

<appender name="CastleNhIntegrationAppender" type="...">
    <!-- put the full appender configuration here -->
</appender>

<logger name="Castle.Facilities.NhibernateIntegration">
    <level value="INFO" />
    <appender-ref ref="CastleNhIntegrationAppender" />
</logger>
于 2011-06-16T03:34:26.407 回答