log4net通过过滤不起作用

本文关键字:过滤 不起作用 logger 通过 log4net | 更新日期: 2023-09-27 18:31:02

我想过滤掉某些日志条目。在我的配置文件中,我尝试将以下内容添加到我的追加器中,但没有运气:

<logger name="NHibernate">
      <level value="ERROR" />
</logger>
<logger name="NHibernate.SQL">
      <level value="ERROR" />
</logger>
<logger name="Castle">
      <level value="ERROR" />
</logger>
<filter type="log4net.Filter.LoggerMatchFilter">
      <loggerToMatch value="/*repeat for all the above*/" />
      <acceptOnMatch value="false" />
</filter>

这是整个文件,其中两个<logger/>部分也是我尝试放置其余过滤器尝试的地方。现在只关心滚动文件追加器。

<log4net>
  <appender name="Console" type="log4net.Appender.ConsoleAppender">
    <layout type="log4net.Layout.PatternLayout">
      <!-- Pattern to output the caller's file name and line number -->
      <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
    </layout>
  </appender>
  <appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
    <file value="C:'log'auto.log" />
    <appendToFile value="true" />
    <maximumFileSize value="1000KB" />
    <maxSizeRollBackups value="10" />
    <logger name="NHibernate" additivity="false">
      <level value="OFF" />
    </logger>
    <logger name="NHibernate.SQL" additivity="false">
      <level value="OFF" />
    </logger>
    <layout type="log4net.Layout.PatternLayout">
      <footer value ="&#13;&#10;"/>
      <conversionPattern value="%date %level - %message%newline%exception" />
    </layout>
  </appender>
  <root>
    <level value="DEBUG" />
    <appender-ref ref="RollingFile" />
  </root>
</log4net>

log4net通过<logger>过滤不起作用

您需要将记录器配置移到追加器之外:记录器引用要使用的追加器,但不是追加器配置的一部分。此外,您应该删除additivity=false,因为这是多余的。

Womp,我不知道log4net是如何工作的。

所有这些<logger/>标签都紧跟在开始<log4net>标签之后,就像这样

<log4net>
    <logger name="NHibernate" >
      <level value="ERROR" />
    </logger>
    <logger name="NHibernate.SQL">
      <level value="ERROR" />
    </logger>
...