跳转到内容
搜索文档

调试与日志

最后更新 查看 MarkdownAgent 设置

使用 Cloudflare 仪表板或 Wrangler CLI 访问 Functions 日志。

日志是强大的调试工具,可帮助你在 Pages Functions 部署后测试和监控其行为。每个 Pages 项目部署都有可用日志。

日志提供有关事件的详细信息,可帮助你了解:

  • Functions 的成功或失败请求。
  • Functions 抛出的未捕获异常。
  • Functions 内声明的自定义 console.log
  • 难以复现的生产问题。
  • 应用传入请求的实时视图。

有两种方式启动日志会话:

  1. 终端 中运行 wrangler pages deployment tail
  2. 使用 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

仪表板将显示:

按照上述步骤在仪表板中访问自定义日志

使用 Wrangler 查看日志

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 文档

在 Cloudflare 仪表板中查看日志

要查看与任何部署关联的 productionpreview 环境的日志:

  1. 在 Cloudflare 仪表板中,前往 Workers & Pages 页面。

    Go to Workers & Pages ↗
  2. 选择 Pages 项目,前往要查看日志的部署并选择 View details(查看详情) > Functions(函数)

所有客户(Free、Paid、Enterprise)均可使用日志。

限制

以下限制适用于 Functions 日志:

  • 日志不存储。可随时开始和停止流以查看,但不会持久保存。
  • 若 Function 在过去五分钟内每秒请求数超过 100,日志不会显示。
  • Functions 绑定的任何 Durable Objects 的日志会显示在 Cloudflare 仪表板中。
  • 最多 10 个客户端可同时查看部署的日志。可以是仪表板会话或 wrangler pages deployment tail 调用的任意组合。

Sourcemaps

若你在调试未捕获异常,可能会发现日志中的 堆栈跟踪 包含生成 JavaScript 文件的行号。使用 Pages 对 source map 的支持,你可获得与原始源代码行号和符号匹配的堆栈跟踪。

深入说明请参阅 Source map 与堆栈跟踪

这篇文档对您有帮助吗?