日志检索
云开发日志检索功能帮助您快速定位和分析应用运行过程中的问题。支持多种检索方式,包括全文检索、键值检索和模糊匹配,让您能够高效地查找特定日志信息。
开通检索功能
- 登录 云开发平台/日志监控
- 开通后即可开始使用各种检索功能
日志格式
日志打印后的格式会自带系统默认的字段,其中默认的系统的字段如下:
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
| level | string | 是 | 日志级别(log/info/warn/error) |
| requestId | string | 是 | 请求ID |
| module | string | 是 | 模块名 |
| resourceName | string | 是 | 资源名 |
| errorCode | string | 是 | 错误码 |
| errorMessage | string | 是 | 错误信息 |
| request | string | 是 | 请求参数 |
| response | string | 是 | 返回参数 |
| msg | string | 否 | 简单日志内容 |
| user | string | 是 | 用户标识 |
| src | string | 是 | system/app |
| startTime | string | 是 | 请求开始时间 |
| timeCost | string | 是 | 请求耗时 |
| service | string | 是 | 服务调用 |
云函数
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
| function_name | string | 是 | 函数名 |
| request_id | string | 是 | 请求ID |
| qualifier | string | 是 | 版本 |
提示
检索方式详解
1. 全文检索
全文检索是最常用的日志查找方式,系统会自动将日志内容按分词符拆分为多个词组,您可以输入关键词进行精确或模糊匹配。
使用场景:
- 查找包含特定错误信息的日志
- 搜索包含某个函数名或变量名的日志
- 定位包含特定用户ID的操作记录
示例:
polls # 查找包含 “polls” 的所有日志

2. 键值检索
键值检索允许您根据日志的结构化字段进行精确查找。日志内容以 JSON 格式存储,您可以使用 key:value 格式来检索特定字段的内容。
常用字段:
level: 日志级别(error、warn、info、debug)source: 日志来源(function、database、storage等)functionName: 云函数名称requestId: 请求IDuserId: 用户ID
使用场景:
- 查找特定级别的日志:
level:error - 查找特定函数的日志:
functionName:user-login - 查找特定用户的操作:
userId:123456
示例:
action: QueryDocument # 查找action为"QueryDocument"的所有日志

3. 模糊关键字检索
模糊检索使用通配符来匹配不确定的字符,适用于部分信息已知的场景。
通配符说明
| 通配符 | 描述 | 示例 | 匹配结果 |
|---|---|---|---|
* | 匹配零个或多个任意字符(不支持开头使用) | abc* | abc 、 abcd 、 abcdef |
? | 匹配单个任意字符 | ab?c | abdc 、 abec 、 ab1c |
使用场景
多版本函数查找:
action: Query* # 查找action为"Query"开头的所有日志

高级查询语法
逻辑运算符
| 运算符 | 语法 | 说明 | 示例 |
|---|---|---|---|
| 与 | A and B 或 A B | 返回同时包含A和B的日志 | error and timeout |
| 或 | A or B | 返回包含A或B的日志 | error or warning |
| 非 | not B | 返回不包含B的日志 | not debug |
| 减 | A not B | 返回包含A但不包含B的日志 | error not timeout |
特殊字符处理
| 语法 | 说明 | 示例 |
|---|---|---|
'text' | 单引号内的文本作为普通字符处理 | 'and' 查找包含"and"的日志 |
"text" | 双引号内的文本作为普通字符处理 | "error:404" 查找包含"error:404"的日志 |
\ | 转义字符,转义特殊符号 | \: 表示冒号字符本身 |
键值对查询
key:value # 基本键值对查询
"error level":high # 包含空格的键名需要用引号
functionName:"user login" # 包含空格的值需要用引号
复合查询示例
错误排查
level:error and functionName:user-login # 查找user-login函数的错误日志
level:error and not timeout # 查找非超时的错误日志
性能分析
duration:>5000 # 查找执行时间超过5秒的日志
level:warn or level:error # 查找警告和错误级别的日志
用户行为追踪
userId:123456 and (login or logout) # 查找特定用户的登录登出日志
requestId:req-* and level:info # 查找特定请求的信息日志
实用检索场景
1. 故障排查
# 查找最近的错误日志
level:error
# 查找特定函数的超时错误
functionName:payment-process and timeout
# 查找数据库连接问题
source:database and (connection or timeout)
2. 性能监控
# 查找慢查询
duration:>3000
# 查找内存使用异常
memory:>512 or "out of memory"
# 查找高频调用
requestCount:>100
3. 用户行为分析
# 查找特定用户的所有操作
userId:user123456
# 查找登录相关日志
action:login or action:logout
# 查找API调用记录
path:/api/* and method:POST