在 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" 以禁止任何日志记录。
在我的 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" 以禁止任何日志记录。