使用 Cloudflare 仪表板或 Wrangler CLI 访问 Functions 日志。
日志是强大的调试工具,可帮助你在 Pages Functions 部署后测试和监控其行为。每个 Pages 项目部署都有可用日志。
日志提供有关事件的详细信息,可帮助你了解:
- Functions 的成功或失败请求。
- Functions 抛出的未捕获异常。
- Functions 内声明的自定义
console.log。 - 难以复现的生产问题。
- 应用传入请求的实时视图。
有两种方式启动日志会话:
- 在 终端 中运行
wrangler pages deployment tail。 - 使用 Cloudflare 仪表板。
自定义日志是可在 Functions 内自行添加的 console.log() 语句。为包含这些 Functions 的部署流式传输日志时,语句会出现在 wrangler pages deployment tail 和仪表板输出中。
以下是 Pages Function 内自定义 console.log 语句的示例:
export async function onRequest(context) {
console.log(
`[LOGGING FROM /hello]: Request came from ${context.request.url}`,
);
return new Response("Hello, world!");
}部署上述代码后,在终端运行 wrangler pages deployment tail。然后访问 Function 所在的路由。终端将显示:
仪表板将显示:
wrangler pages deployment tail 使开发者能够为特定项目和部署实时流式传输日志。
若要开始,在 Pages 项目目录中运行 wrangler pages deployment tail。这将在本地终端中记录应用的任何传入请求。
每个 wrangler pages deployment tail 日志的输出是结构化 JSON 对象:
{
"outcome": "ok",
"scriptName": null,
"exceptions": [
{
"stack": " at src/routes/index.tsx17:4\n at new Promise (<anonymous>)\n",
"name": "Error",
"message": "An error has occurred",
"timestamp": 1668542036110
}
],
"logs": [],
"eventTimestamp": 1668542036104,
"event": {
"request": {
"url": "https://pages-fns.pages.dev",
"method": "GET",
"headers": {},
"cf": {}
},
"response": {
"status": 200
}
},
"id": 0
}wrangler pages deployment tail 允许你自定义日志会话以更好地满足需求。可用配置选项请参阅 wrangler pages deployment tail 文档。
要查看与任何部署关联的 production 或 preview 环境的日志:
-
在 Cloudflare 仪表板中,前往 Workers & Pages 页面。
Go to Workers & Pages ↗ -
选择 Pages 项目,前往要查看日志的部署并选择 View details(查看详情) > Functions(函数)。
所有客户(Free、Paid、Enterprise)均可使用日志。
以下限制适用于 Functions 日志:
- 日志不存储。可随时开始和停止流以查看,但不会持久保存。
- 若 Function 在过去五分钟内每秒请求数超过 100,日志不会显示。
- Functions 绑定的任何 Durable Objects 的日志会显示在 Cloudflare 仪表板中。
- 最多 10 个客户端可同时查看部署的日志。可以是仪表板会话或
wrangler pages deployment tail调用的任意组合。
若你在调试未捕获异常,可能会发现日志中的 堆栈跟踪 ↗ 包含生成 JavaScript 文件的行号。使用 Pages 对 source map ↗ 的支持,你可获得与原始源代码行号和符号匹配的堆栈跟踪。
深入说明请参阅 Source map 与堆栈跟踪。