我有以下代码:
private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
XmlConfigurator.Configure(new FileInfo("log4net.config"));
问题是下面的语句总是返回 True
if (Log.IsDebugEnabled) { /* do time consuming stuff and log the result */
这是我的 log4net 配置文件_
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR" />
<param name="LevelMax" value="ERROR" />
</filter>
<param name="File" value="Log.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%5p [%d] - %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="LogFileAppender" />
<appender-ref ref="ConsoleAppender" />
</root>
为什么 IsDebugEnabled 总是返回 True?
最佳答案
来自 the log4net manual :
尝试:
<root>
<level value="INFO"/>
</root>
请注意,
IsDebugEnabled
由记录器级别控制。由于记录器和附加器之间的松散耦合,您在所有附加器上都有 LevelMin/LevelMax 过滤器这一事实无济于事。关于c# - 为什么 IsDebugEnabled 在我的代码中始终为 True?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5594665/