我在我的应用程序的log4net配置中设置了logfileAppender
和consoleAppender
。我希望日志文件附加程序只写ERROR消息及以上,而控制台附加程序写DEBUG及以上。
我的配置是:
<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d %M - %m%n" />
</layout>
<threshold value="ERROR"/>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %m%n" />
</layout>
</appender>
<root>
<priority value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
我发现ERROR和DEBUG都输出到我的日志文件追加器中。如何将其限制为仅ERROR?
最佳答案
还要注意,记录器中的level
标记与threshold
或LevelMatchFilter
的工作方式不同。Level
指示将实际生成的日志语句。您可以在代码中进行测试。
另一方面,Threshold
过滤掉所有低于阈值的日志消息。
这意味着具有高于最高记录器级别的阈值是没有意义的。我已经多次看到如何设置INFO级别(因为这是大多数追加程序将使用的级别),然后创建一个具有DEBUG阈值的追加程序。然后,当在附加程序上实际上没有出现DEBUG消息时,您会感到惊讶。
关于log4net - Log4net追加器阈值不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1171258/