跳到主要内容

日志检索

云开发日志检索功能帮助您快速定位和分析应用运行过程中的问题。支持多种检索方式,包括全文检索、键值检索和模糊匹配,让您能够高效地查找特定日志信息。

开通检索功能

  1. 登录 云开发平台/日志管理
  2. 开通后即可开始使用各种检索功能

日志格式

日志打印后的格式会自带系统默认的字段,其中默认的系统的字段如下:

字段类型默认说明
levelstring日志级别(log/info/warn/error)
requestIdstring请求ID
modulestring模块名
resourceNamestring资源名
errorCodestring错误码
errorMessagestring错误信息
requeststring请求参数
responsestring返回参数
msgstring简单日志内容
userstring用户标识
srcstringsystem/app
startTimestring请求开始时间
timeCoststring请求耗时
servicestring服务调用

云函数

字段类型默认说明
function_namestring函数名
request_idstring请求ID
qualifierstring版本
提示
  • 用户自定义打印了日志对象内容则会增加自定义的日志字段,并建立 键值索引
  • 用户自定义日志字段若出现系统默认字段,检索日志 时则会优先自定义日志内容。
  • 限制用户自定义日志字段不能出现以下关键字:"__FILENAME__""__TIMESTAMP__","__LOGSETID__","__TOPICID__"

检索方式详解

1. 全文检索

全文检索是最常用的日志查找方式,系统会自动将日志内容按分词符拆分为多个词组,您可以输入关键词进行精确或模糊匹配。

使用场景:

  • 查找包含特定错误信息的日志
  • 搜索包含某个函数名或变量名的日志
  • 定位包含特定用户ID的操作记录

示例:

polls  # 查找包含 “polls” 的所有日志

全文检索示例

2. 键值检索

键值检索允许您根据日志的结构化字段进行精确查找。日志内容以 JSON 格式存储,您可以使用 key:value 格式来检索特定字段的内容。

常用字段:

  • level: 日志级别(error、warn、info、debug)
  • source: 日志来源(function、database、storage等)
  • functionName: 云函数名称
  • requestId: 请求ID
  • userId: 用户ID

使用场景:

  • 查找特定级别的日志:level:error
  • 查找特定函数的日志:functionName:user-login
  • 查找特定用户的操作:userId:123456

示例:

action: QueryDocument  # 查找action为"QueryDocument"的所有日志

全文检索示例

3. 模糊关键字检索

模糊检索使用通配符来匹配不确定的字符,适用于部分信息已知的场景。

通配符说明

通配符描述示例匹配结果
*匹配零个或多个任意字符(不支持开头使用)abc*abcabcdabcdef
?匹配单个任意字符ab?cabdcabecab1c

使用场景

多版本函数查找:

action: Query*    # 查找action为"Query"开头的所有日志

模糊检索示例1

高级查询语法

逻辑运算符

运算符语法说明示例
A and BA 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