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

使用nLog时能否通过配置修改待写入日志条目的日志级别

解答

可以通过NLog原生配置实现日志写入目标输出端前的级别修改,无需调整业务代码或第三方类库逻辑。

实现方案

NLog 4.5及以上版本支持在过滤器规则中直接重写日志级别,你只需要在<when>规则中设置action为Log,同时通过level参数指定目标日志级别即可。

基础场景配置(按命名空间+原有级别重写)

比如将指定命名空间下的所有Warn级别日志重写为Info:

<logger name="Your.ClassLibrary.Namespace.*" writeTo="file">
  <filters defaultAction="Log">
    <when condition="level == LogLevel.Warn" action="Log" level="Info" />
  </filters>
</logger>

复杂场景配置(按消息内容+原有级别重写)

比如将包含特定关键词的Warn级别日志重写为Debug:

<logger name="*" writeTo="allLogs">
  <filters defaultAction="Log">
    <when condition="contains('${message}','已修复的旧漏洞标识') and level == LogLevel.Warn" action="Log" level="Debug" />
  </filters>
</logger>

注意事项

  • 级别重写操作的执行优先级高于输出端的级别匹配规则,重写后的级别会作为输出端过滤判断的唯一依据,完全符合需求
  • 多规则场景下过滤器会按照从上到下的顺序匹配,命中第一条符合条件的规则后就会执行对应操作,配置时注意规则顺序
  • 所有修改纯配置生效,不需要调整原有日志埋点逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:06:08