更新时间:2022-08-13 21:11:37
前置条件位于每一层解析之前,为该层解析提供限制规则,用于解决同类日志中某些字段可能不存在的场景,在此类场景中全局解析可能会造成解析不准确的问题。
启用前置条件后,仅当前置条件为真时,才允许对该层日志进行解析。配置参数如下所示:
说明:执行前置条件验证前,需保证前置条件中条件对象字段已完成解析提取。



前置条件由 2 部分组成:条件对象和操作符:
• 条件对象类型:
条件对象类型 说明
字段名 当条件对象为字段名时,使用中括号 [field] 来表示使用了字段名对象
数字 当条件对象为数字时,直接使用数字即可
字符串 当条件对象为字符串时,使用单引号或双引号来表示字符串对象:
例:[a] == "a" or [a] == 1  表示字段 a 等于字符串 a 或等于数字 1
• 操作符:表示条件对象之间的关系,有以下几种操作符:
操作符类型 说明
比较运算符 ==,!=,<,>,<=,>=
例:[a] != 1;"hello" == "world";5>2
正则匹配符 =~,!~
例:[a]=~"^#" :表示匹配字段 a 以 # 开头为真;!~ :表示对匹配的结果取反
成员运算符 in,not in
例:[a] not in ["hello world"]:表示字段 a 不在 hello world 中时,条件为真;"a" in "abc":表示字符串 a 在 abc 中时条件为真
逻辑运算符 and,or,nand,xor
例:[a] and [b] :表示字段 a 和字段 b 都存在时条件为真
一元操作符
例:![a] :表示如果字段 a 不存在,或为空时条件为真