Skip to main content
打印或流式读取一个正在运行的开发会话中每个上下文的日志。 logs 读取 dev 会话从你的扩展里收集到的日志记录:background、content script、popup、options 以及其余上下文。一条命令就能按顺序合并展示全部内容,不用打开任何一个 DevTools 窗口。

什么时候使用 logs

  • 你想在同一个流里同时看到 background worker 和某个 content script 的控制台输出。
  • agent 或脚本需要机器可读的日志记录,而不是从终端文本里刮取。
  • 你想查看扩展早些时候记录了什么,而不必重新触发一遍那个行为。

用法

默认情况下,logs 打印磁盘上已有的记录然后退出。加上 --follow 可以保持连接,实时流式读取新记录。

参数与 flag

选择某个 --level 会包含该级别以及所有更严重的级别。--level warn 会显示 warnerror。普通的 console.log 记录算作 info

一次性模式

不加 --follow 时,命令直接读取 dist/extension-js/<browser>/logs.ndjson,不需要任何实时连接。开发会话会把每一条记录追加到那个文件,所以即使你已经关掉浏览器,一次性读取依然有效。 如果该文件不存在,logs 会提示你先启动 extension dev,并以退出码 1 退出。机器可读格式还会输出一个错误码为 E_LOGS_NOT_FOUND 的失败信封(参见 结果信封)。

跟随模式

--follow 会查找会话的就绪契约,以日志消费方的身份连接控制通道,并在记录产生时把它们流式输出。它需要一个正在运行的开发会话,但不需要任何解锁 flag:日志消费始终是允许的。
如果流跟不上、会话丢弃了记录,logs 会在 stderr 上打印一行提示,说明丢弃的条数和原因。 当你用 Ctrl+C 停止这个流时,机器可读格式会打印一个状态为 interrupted 的终止成功信封,这样消费方就能区分正常停止与崩溃。退出码为 0 如果找不到所选浏览器对应的会话,命令会以 E_SESSION_NOT_FOUND 失败,并指名应当运行的 extension dev 命令。

输出格式

pretty 模式每条记录打印一行:
ndjson 每行打印一条原始 JSON 记录,非常适合 jq 和日志采集器。json 会把每条记录格式化成多行。当 stdout 不是 TTY 时,ndjson 本来就是默认值,因此走管道不需要额外的 flag:

示例

只看某个站点上 content script 的错误与警告:
从某条已知记录之后继续读取,适合轮询的 agent:

下一步

  • doctor 诊断 logs --follow 连不上的会话。
  • inspect 一次调用就同时拿到 DOM 快照和最近的控制台输出。
  • 调试 中了解更完整的调试工作流。
  • 结果信封 中查看机器可读的失败格式。