关于 worker-logs
worker-logs 是用于查看网站和 API 所用 Cloudflare Workers 实时日志的仓库技能。开发者可在复现问题时追踪请求、状态、控制台输出和授权故障。
主要功能
- 01实时流式查看 Worker 日志
- 02检查请求和状态码
- 03按状态、方法和文本筛选
- 04输出 JSON 格式日志
- 05关联 API 与网站 Worker
适用场景
- 01排查 401 或 500 响应
- 02检查内部请求头是否到达
- 03复现问题时追踪 API 调用
- 04关联网站与 API Worker 日志
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ openagentsinc/ openagents --skill worker-logs安装后在 Claude Code 中输入/worker-logs确认已加载。
详细介绍
检查 Cloudflare Worker 日志
当你需要查看已部署的 Workers 内部情况时,请使用此技能:请求路径、响应状态、console.log 输出和错误。主站和 API 分别是独立的 Cloudflare Workers。
何时使用此技能
- 调试来自 openagents.com 或 openagents.com/api 的 401/500 错误。
- 确认 Worker 是否收到了预期的标头(例如 X-OA-Internal-Key),以及它为何可能返回 "unauthorized"。
- 查看 Rust API 或 Web 应用中的 console.log / console_error! 输出。
- 与 Khala 日志关联(Khala 会调用 API Worker;重现问题时对 API Worker 执行 tail)。
此仓库中的 Workers
| Worker | 配置 | 路由 | 用途 |
|---|---|---|---|
| openagents-api | apps/api/wrangler.toml | openagents.com/api/* | Rust API:legacyparity、control、D1、R2 等。 |
| openagents-web-app | apps/web/wrangler.jsonc | openagents.com(主站) | TanStack/React 应用(Node compat)。 |
请从包含相应 Worker 配置的应用目录运行 wrangler tail(或使用 --config / --cwd)。
Wrangler tail(仅实时)
Cloudflare 不通过 CLI 提供历史 Worker 日志。你会获得请求和日志的实时流。如需查看历史数据,请使用控制台:Workers & Pages → 你的 Worker → Logs / Real-time Logs 或 Logpush。
基本用法
# API worker (Rust) — run from apps/api
cd apps/api
npx wrangler tail
# Web app worker — run from apps/web
cd apps/web
npx wrangler tail
让命令持续运行,然后在浏览器中重现问题。你会看到每个请求、状态和任何控制台输出。
Tail 选项
| 选项 | 含义 |
|---|---|
--format pretty | 易于阅读的格式(默认)。 |
--format json | 每行一个 JSON 对象(例如通过管道传给 jq)。 |
--status ok | 仅显示成功的请求。 |
--status error | 仅显示错误/失败的请求。 |
--method GET | 按 HTTP 方法筛选。 |
--search "legacyparity" | 按 console.log 消息中的文本筛选。 |
--header "x-oa-internal-key" | 按标头是否存在筛选。 |
--sampling-rate 1 | 记录 100% 的请求(默认可能会采样)。 |
示例
# API worker: only errors, pretty
cd apps/api
npx wrangler tail --status error --format pretty
# API worker: JSON and filter by URL path with jq
cd apps/api
npx wrangler tail --format json | jq 'select(.url | contains("legacyparity"))'
# Web worker: tail while reproducing a page error
cd apps/web
npx wrangler tail
两个 Worker,两个终端
调试某个流程时(例如 Hatchery 调用 Khala、Khala 调用 API),如需同时查看站点和 API:
- 终端 1:
cd apps/api && npx wrangler tail --format pretty - 终端 2:
cd apps/web && npx wrangler tail --format pretty - 可选:在第三个终端查看 Khala 日志:
cd apps/web && npx khala logs --prod --success
然后重现问题;留意发往 API Worker 的请求以及任何 console.log / 诊断输出。
限制
- **仅实时:**没有
--history;tail 会持续输出,直到你按 Ctrl+C。 - **采样:**负载较高时,tail 可能会采样;使用
--sampling-rate 1可减少采样。 - **最多 10 个客户端:**每个 Worker 最多允许 10 个并发 tail 会话。
- **密钥:**日志不得打印密钥;诊断日志中请使用长度或记录“存在/缺失”。
诊断日志(此仓库)
对于 legacyparity 身份验证,API Worker 会记录:
legacyparity auth: no internal key header path=...— 请求已到达 Worker,但缺少X-OA-Internal-Key标头(例如标头被剥除或 Khala 未发送)。legacyparity auth 401: path=... provided_len=... expected_len=...— 标头存在,但值与 Worker 密钥不匹配(比较长度;如果长度相同,则说明值不同)。legacyparity auth ok path=... key_len=...— 内部密钥匹配;请求已通过授权。
重现 401 时,请在 apps/api 中使用 wrangler tail,查看出现了哪一行。Khala 操作会在每次请求前记录 [legacyparityApi <label>] fetch key_len=<n> url=...;将其与 Worker 日志关联,以确认 Khala 发送了什么以及 Worker 收到了什么。