# @dotcom-reliability-kit/log-error 中文文档

规范地址：https://npmcn.com/package/%40dotcom-reliability-kit/log-error/

版本：6\.0\.3
npm 元数据更新时间：2026-11-11T10:55:53.555Z
中文译文更新时间：2026-11-12T22:07:35.927Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40dotcom-reliability-kit/log-error
原文对照：https://npmcn.com/package/%40dotcom-reliability-kit/log-error/?lang=original
项目主页：https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/log-error#readme
源码仓库：https://github.com/Financial-Times/dotcom-reliability-kit

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：21.5 kB，7 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：^22\.12 \|\| ^24 \|\| ^26
- 运行依赖：4 个
- 首次发布：2022-06-13T11:29:29.471Z
- 最新版本发布：2026-11-11T10:55:53.259Z
- 近 30 天下载量：4176（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：74（近 12 个月 8 个）

## 中文简介

用可选请求信息持续记录错误对象的方法

## 安装

```sh
npm install @dotcom-reliability-kit/log-error
```

也可以使用：`pnpm add @dotcom-reliability-kit/log-error`、`yarn add @dotcom-reliability-kit/log-error`、`bun add @dotcom-reliability-kit/log-error`

## README

# @dotcom - 可靠性- kit/ log- error

使用可选请求信息持续日志错误对象的方法 。 此模块是 [FT.com 可靠性工具包](https://github.com/Financial-Times/dotcom-reliability-kit#readme)。 。 。 .

-   [使用量](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-usage)
    -   [`logHandledError`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-loghandlederror)
    -   [`logRecoverableError`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-logrecoverableerror)
    -   [`logUnhandledError`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-logunhandlederror)
    -   [配置选项](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-configuration-options)
        -   [`options.error`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-optionserror)
        -   [`options.includeHeaders`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-optionsincludeheaders)
        -   [`options.logger`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-optionslogger)
        -   [`options.logUserErrorsAsWarnings`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-optionslogusererrorsaswarnings)
        -   [`options.request`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-optionsrequest)
-   [移动](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-migrating)
-   [捐款](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-contributing)
-   [许可证](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-license)

## 使用量

安装 `@dotcom-reliability-kit/log-error` 作为依附关系:

```bash
npm install --save @dotcom-reliability-kit/log-error
```

在代码中包含 :

```js
import {logRecoverableError} from '@dotcom-reliability-kit/log-error';
```

> \[TIP\] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置: `tsconfig.json` 避免类型错误的文件 :
> 
> ```json
> {
>     "esModuleInterop": true,
>     "module": "nodenext",
>     "moduleResolution": "nodenext"
> }
> ```

### `logHandledError`

这个 `logHandledError` 函数可用于持续地将错误记录到控制台和Splunk 通过 [可靠性 Kit 记录器](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/logger)。这种方法用于表示正在登录的错误已经正确处理,应用程序可以继续运行.

```js
logHandledError({
    error: new Error('Something went wrong')
});
```

这将自动 [序列化错误对象](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/serialize-error#readme) 记录下来 记录的信息是这样的:

```js
{
    event: 'HANDLED_ERROR',
    message: 'Error: something went wrong',

    error: {
        code: 'EXAMPLE_CODE',
        message: 'Something went wrong'
        // etc. (see `@dotcom-reliability-kit/serialize-error` linked above
        // for information about the logged properties
    },

    app: {
        commit: '137da65185397a7d699ed54c3052d10d83e82137',
        name: 'example-app',
        nodeVersion: '22.13.0',
        region: 'EU',
        releaseDate: '2022-07-25T01:37:00Z'
    }
}
```

### `logRecoverableError`

这个 `logRecoverableError` 函数可用于持续地将错误记录到控制台和Splunk 通过 [可靠性 Kit 记录器](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/logger)。这种方法用于表示正在登录的错误是完全可以恢复的,没有向用户发送错误页.

```js
logRecoverableError({
    error: new Error('Something went wrong')
});
```

记录的信息是这样的:

```js
{
    event: 'RECOVERABLE_ERROR',
    message: 'Error: something went wrong',

    error: {
        code: 'EXAMPLE_CODE',
        message: 'Something went wrong'
        // etc. (see `@dotcom-reliability-kit/serialize-error` linked above
        // for information about the logged properties
    },

    app: {
        commit: '137da65185397a7d699ed54c3052d10d83e82137',
        name: 'example-app',
        nodeVersion: '22.13.0',
        region: 'EU',
        releaseDate: '2022-07-25T01:37:00Z'
    }
}
```

### `logUnhandledError`

这个 `logUnhandledError` 函数可用于持续地将错误记录到控制台和Splunk 通过 [可靠性 Kit 记录器](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/logger)。这种方法用于表示记录的错误无法恢复,导致应用程序崩溃.

```js
logUnhandledError({
    error: new Error('Something went wrong')
});
```

记录的信息是这样的:

```js
{
    event: 'UNHANDLED_ERROR',
    message: 'Error: something went wrong',

    error: {
        code: 'EXAMPLE_CODE',
        message: 'Something went wrong'
        // etc. (see `@dotcom-reliability-kit/serialize-error` linked above
        // for information about the logged properties
    },

    app: {
        commit: '137da65185397a7d699ed54c3052d10d83e82137',
        name: 'example-app',
        nodeVersion: '22.13.0',
        region: 'EU',
        releaseDate: '2022-07-25T01:37:00Z'
    }
}
```

### 配置选项

配置选项可以作为对象传递到所有提供的日志函数中,键如下:

```js
logRecoverableError({
    // Options go here
});
```

#### `options.error`

日志错误对象 。 这是唯一必要的选择.

```js
logRecoverableError({
    error: new Error('Something went wrong')
});
```

#### `options.includeHeaders`

串行请求对象中包含的一系列请求头(如果提供了 `options.request`) (中文(简体) ). 这一定是个 `Array` 联 合 国 `String`s,每个字符串为页眉名. 重要的是,你不包括包括个人识别信息、API密钥或其他特权信息在内的信头。 此选项直接传递到 [`dotcom-reliability-kit/serialize-request`](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/serialize-request#readme) 它有进一步的文件.

此选项默认为 :

```js
[
    'accept',
    'accept-encoding',
    'accept-language',
    'content-type',
    'referer',
    'user-agent'
]
```

使用实例:

```js
logRecoverableError({
    // ...other required options
    includeHeaders: [
        'accept',
        'content-length',
        'content-type',
        'user-agent'
    ]
});
```

默认的套头也可以使用,所以如果想要添加新的包含头则不需要重复. 你需要导入 `@dotcom-reliability-kit/serialize-request`,然后可以使用这些信头:

```js
import { DEFAULT_INCLUDED_HEADERS } from '@dotcom-reliability-kit/serialize-request';

logRecoverableError({
    // ...other required options
    includeHeaders: [
        ...DEFAULT_INCLUDED_HEADERS,
        'my-custom-header'
    ]
});
```

> \[注\]  
> 没有必要包括 `x-request-id` 此数组中的页眉, 由于此自动包含为 `request.id` 在日志中.

#### `options.logger`

一个执行两种方法的日志对象: `error` 财务报告和审定财务报表 `warn`它可能执行其他方法,但是没有使用。 这些方法有一个非常宽容的签名:

```ts
type LogMethod = (...logData: any) => any;
```

虽然他们最好能接受一个单一对象,输出结果作为JSON.

此选项默认为 [可靠性 Kit 记录器](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/logger)。 。 。 .

#### `options.logUserErrorsAsWarnings`

> \[注\]  
> 此选项仅在 [`logHandledError`](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/#readme-loghandlederror) 函数.

A 类 `boolean` 表示是否日志用户错误(带有 `400`– 说吧 –`499` `status` 财产)的等级 `warn` 而不是说 `error`。这有助于减少您需要关注的错误级别日志的数量.

此选项默认为 `false`。 。 。 .

#### `options.request`

请求对象(例如: `Express.Request` 对象 `method` 财务报告和审定财务报表 `url` 属性),在日志中包含出错。 这将是 [自动序列化 `@dotcom-reliability-kit/serialize-request`](https://github.com/Financial-Times/dotcom-reliability-kit/tree/main/packages/serialize-request#readme)。 。 。 .

```js
app.get('/example', (request, response, next) => {
    logRecoverableError({
        // ...other required options
        request: request
    });
    next();
});
```

当定义此选项时, 日志数据外观包括请求数据 :

```js
{
    event: 'RECOVERABLE_ERROR',
    message: 'Error: something went wrong',

    error: {
        code: 'EXAMPLE_CODE',
        message: 'Something went wrong'
        // etc. (see `@dotcom-reliability-kit/serialize-error` linked above
        // for information about the logged properties
    },

    request: {
        id: 'abc123',
        method: 'GET',
        url: '/'
        // etc. (see `dotcom-reliability-kit/serialize-request` linked above
        // for information about the logged properties)
    },

    app: {
        commit: '137da65185397a7d699ed54c3052d10d83e82137',
        name: 'example-app',
        nodeVersion: '22.13.0',
        region: 'EU',
        releaseDate: '2022-07-25T01:37:00Z'
    }
}
```

## 移动

咨询 [移徙指南](https://npmcn.com/package/%40dotcom-reliability-kit/log-error/docs/migration.md) 如果你想要迁移到这个软件包的后期主要版本.

## 捐款

见 [可靠性工具包中心贡献指南](https://github.com/Financial-Times/dotcom-reliability-kit/blob/main/docs/contributing.md)。 。 。 .

## 许可证

凭 [麻省理工学院](https://github.com/Financial-Times/dotcom-reliability-kit/blob/main/LICENSE) 执照.  
版权:"2022","金融时报"有限公司.

## 常见问题

### @dotcom-reliability-kit/log-error 是什么？

用可选请求信息持续记录错误对象的方法

### 如何安装 @dotcom-reliability-kit/log-error？

在项目目录运行 npm install @dotcom-reliability-kit/log-error，或使用 pnpm add / yarn add / bun add。

### @dotcom-reliability-kit/log-error 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @dotcom-reliability-kit/log-error 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @dotcom-reliability-kit/log-error 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js ^22\.12 \|\| ^24 \|\| ^26。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @dotcom-reliability-kit/log-error 可以商用吗？

@dotcom-reliability-kit/log-error 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @dotcom-reliability-kit/log-error 的下载量有多少？

根据 npm 官方下载统计，@dotcom-reliability-kit/log-error 在 2026/10/13 – 2026/11/11 这 30 天内被下载 4,176 次，日均约 139 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @dotcom-reliability-kit/log-error 还在维护吗？

最新版本 6\.0\.3 发布于 2026/11/11（2 天前）；至今共发布 74 个版本，其中过去 12 个月发布了 8 个；首次发布于 2022/06/13。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

