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

检查内容

检查项通过时警告或失败时
nodeNode 20 或更高版本低于 20——CLI 将无法可靠运行(失败)
project已解析出一个 package.json在工作目录上方未找到
stack已检测到框架,并且 evlog 已安装已检测到框架,但 evlog 尚未接入
evlogevlog 可从 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'

负载包含已解析的项目(cwdrootpackageDir、工作区类型、包名、检测到的技术栈),每一项检查及其状态,以及汇总计数。

每条警告和失败信息还会携带一个来自 CLI 自有错误目录的代码:cli.EVLOG_NOT_FOUNDcli.EVLOG_DECLARED_NOT_INSTALLEDcli.NODE_TOO_OLDcli.PROJECT_NO_PACKAGE,每个代码都包含 whyfix,其工作方式与应用中的结构化错误相同。

选项

标志功能
--cwd <dir>诊断其他目录
--json在标准输出中输出机器可读结果
--debug打印命令执行经过的步骤
--noHeader跳过品牌页眉

接下来

  • 安装:将 evlog 接入你的框架
  • evlog map:安装完成后,查看缺少接入的位置