You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NLog的IgnoreFinal/LogFinal:忽略所有后续规则还是仅匹配当前过滤规则?

NLog中IgnoreFinal/LogFinal的"忽略所有后续日志规则"含义解析

核心结论

IgnoreFinal和LogFinal里的"忽略所有后续日志规则",指的是一旦当前过滤规则被触发(日志条目匹配该规则的所有条件),后续所有的过滤规则都会被直接跳过,不再进行任何判断,绝非只针对条件相同的规则。

结合示例分析

针对你给出的过滤规则:

Filter 1: min=Debug max=Fatal condition=length('${message}') > 100 action=IgnoreFinal
Filter 2: min=Trace max=Warn condition=length('${message}') > 100 action=Log

分两种场景判断:

  • 场景1:日志是Debug~Fatal级别、消息长度>100
    该日志会匹配Filter 1的所有条件,触发IgnoreFinal动作:这条日志不会被记录,并且后续的Filter 2会被直接忽略——哪怕它的条件也满足,也不会执行任何判断。
  • 场景2:日志是Trace级别、消息长度>100
    该日志不匹配Filter 1(Trace不在Filter 1的min-max级别范围内),所以Filter 1不会触发。流程会继续走到Filter 2,满足条件后执行Log动作,这条日志会被正常记录。

补充说明

NLog的过滤规则是按配置顺序依次执行判断的,只有当某条规则触发了IgnoreFinal或LogFinal时,才会终止后续所有规则的执行;如果当前规则未被触发(日志不匹配其条件),则会继续判断下一条规则。

内容的提问来源于stack exchange,提问作者Danielle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 06:53:12