Log4Net根配置设置正在将文件级别混合到附加程序中
本文关键字:混合 程序 文件 配置 设置 Log4Net | 更新日期: 2023-09-27 18:24:00
我在以下根配置设置中遇到了一些问题:
<root>
<level value="INFO" />
<appender-ref ref="file-appender-info" />
<level value="WARN" />
<appender-ref ref="file-appender-warn" />
<level value="ERROR" />
<appender-ref ref="file-appender-error" />
<level value="DEBUG" />
<appender-ref ref="ConsoleAppenderStandard" />
</root>
它正在将所有级别的日志写入所有文件Appenders。
例如info-log.txt有来自log.Warn和log.Error 的日志
我确信我对配置的布局有一个简单的问题,但我似乎找不到它是什么。
您在根中重复定义日志记录的级别,然后只保留最新的日志记录,并将其用于所有追加器。一个记录器只能存在一个级别。
如果要将每个级别筛选为一个appender,请在根中声明所有appender并在每个appender上使用LevelMatchFilter
,以便每个appenders中只传递一个级别类型。
你可能对其他过滤器感兴趣,这里有一个来自上面链接的列表:
以下是log4net分发版中可用的过滤器列表:
log4net.Filter.LevelMatchFilter
过滤与特定日志记录级别匹配的日志事件;或者,可以将其配置为过滤与特定日志记录级别不匹配的事件log4net.Filter.LevelRangeFilter
类似于LevelMatchFilter,不同之处在于它不是过滤单个日志级别,而是在连续级别的包含范围log4net.Filter.LoggerMatchFilter
根据发出日志事件的记录器对象的名称过滤日志事件log4net.Filter.StringMatchFilter
根据与日志消息匹配的字符串或正则表达式过滤日志事件log4net.Filter.PropertyFilter
根据与特定上下文属性匹配的值或正则表达式筛选日志事件log4net.Filter.DenyAllFilter
有效地删除了appender的所有日志事件