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

Fluentd正则匹配失败时输出完整原始消息的实现方案

问题原因

原配置的正则提取逻辑未做空值兜底:scan方法在无匹配场景下返回空数组,调用.first取值为nil,最终导致MESSAGE字段输出空。

调整后完整配置

<filter docker>
  @type record_transformer
  enable_ruby true  
  <record>
   MESSAGE ${matched = record["MESSAGE"]&.match(/:\ (.*+)$/); matched ? matched[1] : record["MESSAGE"]}
  </record>  
</filter>

逻辑说明

  • 正则保持原有写法不变,匹配成功时返回捕获组1对应的片段(即冒号+空格后的内容),和原有场景1的输出效果完全一致。
  • 正则匹配失败时,直接返回原始MESSAGE字段值,满足场景2的输出要求。
  • 新增&.安全导航操作符,可避免MESSAGE字段本身为nil时抛出语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.27 15:24:01