---
title: "evlog 诊断"
description: "诊断 evlog 配置——Node 版本、项目解析、已安装的 evlog 版本、检测到的框架，以及本地日志是否正在写入。"
canonical_url: "https://evlog.zhcndoc.com/cli/doctor"
---
# evlog 诊断

> 诊断 evlog 配置——Node 版本、项目解析、已安装的 evlog 版本、检测到的框架，以及本地日志是否正在写入。

`evlog doctor` 会回答“evlog 在这里是否真的接入了？”，这是你按照设置指南操作后却什么都没有显示时会问的问题。

```bash [Terminal]
evlog doctor
```

```text [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
```

## 检查内容

<table>
<thead>
  <tr>
    <th>
      检查项
    </th>
    
    <th>
      通过时
    </th>
    
    <th>
      警告或失败时
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <code>
        node
      </code>
    </td>
    
    <td>
      Node 22 或更高版本
    </td>
    
    <td>
      低于 22——CLI 将无法可靠运行（失败）
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        project
      </code>
    </td>
    
    <td>
      已解析出一个 <code>
        package.json
      </code>
    </td>
    
    <td>
      在工作目录上方未找到
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        stack
      </code>
    </td>
    
    <td>
      已检测到框架，并且 evlog 已安装
    </td>
    
    <td>
      已检测到框架，但 evlog 尚未接入
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        evlog
      </code>
    </td>
    
    <td>
      <code>
        evlog
      </code>
      
       可从 <code>
        node_modules
      </code>
      
       解析
    </td>
    
    <td>
      已在 <code>
        package.json
      </code>
      
       中声明但未安装，或完全缺失
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        config
      </code>
    </td>
    
    <td>
      已读取 <a href="https://evlog.zhcndoc.com/cli/config">
        <code>
          evlog.config.ts
        </code>
      </a>
      
      ，并找到了它扩展的配置
    </td>
    
    <td>
      无法读取文件：存在语法错误、拼写错误的设置，或运行时计算的 CLI 设置（失败）。没有配置时会省略此检查
    </td>
  </tr>
  
  <tr>
    <td>
      <code>
        logs
      </code>
    </td>
    
    <td>
      存在本地 drain，或 fs drain 已接入（该目录会在首次写入时出现）
    </td>
    
    <td>
      从不——未配置本地 drain 时会省略此检查
    </td>
  </tr>
</tbody>
</table>

在工作区中，页眉会显示工作区类型，而 `project` 会显示解析到的包，这是发现你诊断的是仓库根目录而不是应用的最快方式。

本地 drain 是可选的：[fs drain](https://evlog.zhcndoc.com/integrate/adapters/self-hosted/fs) 会写入 `.evlog/logs` 下，并在首次写入时创建该目录，因此在任何事件写入前，已接入的 drain 也会被计为 drain。没有本地 drain 的项目完全不会进行 `logs` 检查。

## 退出代码的含义

没有任何失败时为 `0`，任意检查失败时为 `1`。警告不会导致命令失败，因为尚未写入日志的项目并不代表已损坏。

## 将结果读取为 JSON

```bash [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`，其工作方式与应用中的[结构化错误](https://evlog.zhcndoc.com/learn/structured-errors)相同。

## 选项

<table>
<thead>
  <tr>
    <th>
      标志
    </th>
    
    <th>
      功能
    </th>
  </tr>
</thead>

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

## 接下来

- [安装](https://evlog.zhcndoc.com/start/installation)：将 evlog 接入你的框架
- [`evlog map`](https://evlog.zhcndoc.com/cli/map)：安装完成后，查看缺少接入的位置

---

- [安装](https://evlog.zhcndoc.com/start/installation)


## Sitemap

See the full [sitemap](https://evlog.zhcndoc.com/sitemap.md) for all pages.
