【发布时间】:2022-03-13 15:22:59
【问题描述】:
记录器可能被分配级别。级别是 log4net.Core.Level 类的实例。以下级别按优先级递增的顺序定义:
- 全部
- 调试
- 信息
- 警告
- 错误
- 致命
- 关闭
DEBUG 的优先级似乎最低,而 ERROR 的优先级更高。
问题
- 如果我设置 Min 和 Max 示例 DEBUG 和 ERROR,它会打印所有内容 DEBUG、INFO、WARN 和 ERROR。不使用最小和最大过滤器。如果我指定 ERROR (Logging level = ERROR) 是否会包含 DEBUG、INFO 和 WARN
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="ERROR"/>
<param name="LevelMax" value="ERROR"/>
</filter>
而不是最小和最大过滤器。是否可以配置一个级别并包括其下的所有其他级别以进行日志记录。
示例 - 将级别设置为错误,它将包括 DEBUG、INFO、WARN 和 ERROR。 log4net 可以做到这一点吗?
发布基于 cmets 之一的 log4net 配置:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections >
<log4net debug="true">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<layout type="log4net.Layout.XMLLayout" /> -->
<param name="File" value="TestLog.log" />
<param name="AppendToFile" value="false" />
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[START LOG] %newline" />
<footer type="log4net.Util.PatternString" value="[END LOG] %newline" />
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<param name="LevelMin" value="DEBUG"/>
<param name="LevelMax" value="ERROR"/>
</filter>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</root>
<logger name="log4NetExample">
<!-- <appender-ref ref="B" /> -->
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
</logger>
</log4net>
【问题讨论】:
-
您是否尝试将日志记录级别设置为 INFO 并检查它是否包含 INFO 和 DEBUG?
-
DEBUG 的优先级似乎最低,Error 最高。 这不是 priority,而是 threshold 或上面会记录一条消息。
-
你试过只使用
levelMax吗?如果您不指定levelMin,我认为这应该包括它下面的所有内容
标签: c# log4net log4net-configuration