日志检索
云开发日志检索功能帮助您快速定位和分析应用运行过程中的问题。支持多种检索方式,包括全文检索、键值检索和模糊匹配,让您能够高效地查找特定日志信息。
开通检索功能
- 登录 云开发平台/日志管理
- 开通后即可开始使用各种检索功能
日志格式
日志打印后的格式会自带系统默认的字段,其中默认的系统的字段如下:
字段 | 类型 | 默认 | 说明 |
---|---|---|---|
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