在 log4net 中切换文本文件日志记录

Toggling text file logging in log4net

在我的 Web 应用程序中,我希望能够打开或关闭文本文件登录,log4net 中是否有方法可以实现此目的?

现在我正在我的 log4net.config 文件中执行此操作,但这让我认为它会一直在两个地方登录:

<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
  <param name="ApplicationName" value="Lending Service" />
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %newline %exception"  />
  </layout>
  <filter type="log4net.Filter.LevelRangeFilter">
    <levelMin value="INFO"/>
    <levelMax value="FATAL"/>
  </filter> 
</appender>

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
  <file value="mylogfile.txt"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="5"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>

  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/>
  </layout>

</appender>

<root>
  <level value="DEBUG"/>
  <appender-ref ref="RollingFileAppender"/>
  <level value="ALL"/>
  <appender-ref ref="EventLogAppender" />
</root>

编辑 我正在寻找一种通过 .config 设置来执行此操作的方法,无论它是否需要添加到 log4net.config 或 web.config 文件中。

我不知道 web.config,但是如果您将以下行添加到 log4net.config 的附加程序中,它应该可以工作。

<threshold value="OFF"/>

只要该值大于您发送的条目,它就不会显示在日志中(即值="WARN" 不会记录 DEBUG/INFO 的条目。)然后您可以将其更改为 "OFF" 以禁止任何日志记录。