CLI
evlog 诊断
诊断 evlog 配置——Node 版本、项目解析、已安装的 evlog 版本、检测到的框架,以及本地日志是否正在写入。
evlog doctor 会回答“evlog 在这里是否真的接入了?”,这是你按照设置指南操作后却什么都没有显示时会问的问题。
Terminal
evlog doctor
Output
pnpm workspace
ENVIRONMENT
│ ✓ node v24.18.0
│ ✓ project evlog-playground · pnpm · apps/playground
│ ✓ stack nuxt
EVLOG
│ ✓ evlog v2.22.3 (workspace:*)
│ ✓ logs 1 file · .evlog/logs
5 ok · 0 warn · 0 fail
检查内容
| 检查项 | 通过时 | 警告或失败时 |
|---|---|---|
node | Node 20 或更高版本 | 低于 20——CLI 将无法可靠运行(失败) |
project | 已解析出一个 package.json | 在工作目录上方未找到 |
stack | 已检测到框架,并且 evlog 已安装 | 已检测到框架,但 evlog 尚未接入 |
evlog | evlog 可从 node_modules 解析 | 已在 package.json 中声明但未安装,或完全缺失 |
logs | 存在本地 drain,或 fs drain 已接入(该目录会在首次写入时出现) | 从不——未配置本地 drain 时会省略此检查 |
在工作区中,页眉会显示工作区类型,而 project 会显示解析到的包,这是发现你诊断的是仓库根目录而不是应用的最快方式。
本地 drain 是可选的:fs drain 会写入 .evlog/logs 下,并在首次写入时创建该目录,因此在任何事件写入前,已接入的 drain 也会被计为 drain。没有本地 drain 的项目完全不会进行 logs 检查。
退出代码的含义
没有任何失败时为 0,任意检查失败时为 1。警告不会导致命令失败,因为尚未写入日志的项目并不代表已损坏。
将结果读取为 JSON
Terminal
evlog doctor --json | jq '.checks'
负载包含已解析的项目(cwd、root、packageDir、工作区类型、包名、检测到的技术栈),每一项检查及其状态,以及汇总计数。
每条警告和失败信息还会携带一个来自 CLI 自有错误目录的代码:cli.EVLOG_NOT_FOUND、cli.EVLOG_DECLARED_NOT_INSTALLED、cli.NODE_TOO_OLD、cli.PROJECT_NO_PACKAGE,每个代码都包含 why 和 fix,其工作方式与应用中的结构化错误相同。
选项
| 标志 | 功能 |
|---|---|
--cwd <dir> | 诊断其他目录 |
--json | 在标准输出中输出机器可读结果 |
--debug | 打印命令执行经过的步骤 |
--noHeader | 跳过品牌页眉 |