过滤日志
Query and filter your structured logs using a custom query language with operators and boolean expressions.
阅读时间2 分钟最后更新于 1 个月前
Logging 服务支持自定义查询语言,让您能够轻松过滤结构化的日志。本节将介绍查询语言的语法和用法,并提供一些示例来帮助您入门。
基本语法和运算符
过滤查询由一个或多个条件组成。一个条件的基本语法包含以下组成部分:组成部分 | 条件 |
|---|---|
| 字段 | 要作为过滤依据的字段,例如 |
| 运算符 | 支持的运算符之一。请参阅下面的运算符表。 |
| 值 | 要与字段比较的值。 |
运算符 | 含义 |
|---|---|
| 等于 |
| 不等于 |
| 包含(仅可用于 |
| 不包含(仅可用于 |
| 大于 |
| 小于 |
| 小于或等于 |
| 大于或等于 |
布尔表达式和分组
您可以使用布尔表达式和带括号的分组功能来创建复杂的过滤查询。因此,您可以组合多个条件来创建精确的过滤器。布尔表达式 | 含义 |
|---|---|
| 要求任一端的两个条件都成立。 |
| 要求任一端的至少一个条件成立。 |
| 分组 | 使用括号 ( ) 对表达式进行分组并控制计算顺序。 |
AND过滤查询示例
选择特定严重性级别的所有日志:从 Cloud Code 中选择高于特定严重性级别的所有日志(换行符被视为 AND):severityText = "ERROR"
排除消息中包含特定字词的日志:resourceAttributes.service.name = "cloud-code"severityNumber >= 12
组合多个条件和分组(使用“severity”别名):body !~= "healthcheck"
(logAttributes.event.name = "example-event" AND body ~= "timeout") OR (logAttributes.custom.counter > 9000 AND severity = "WARN")
注意
请注意以下关于过滤查询语言的事项:- 为方便起见,字段还采用别名
severityTextseverity - 仅 字段支持模糊匹配运算符(
body= 和 !=) - 键区分大小写
logAttributes - 值自动转换为字符串
logAttributes