@dotcom-reliability-kit/log-error

中文文档
6.0.3发布于 2026/11/11MITTypeScriptES Module近 30 天下载 4176

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

中文使用文档
文档目录8 节
  1. 使用量
  2. logHandledError
  3. logRecoverableError
  4. logUnhandledError
  5. 配置选项
  6. 移动
  7. 捐款
  8. 许可证

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

使用可选请求信息持续日志错误对象的方法 。 此模块是 FT.com 可靠性工具包。 。 。 .

使用量

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

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

在代码中包含 :

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

[TIP] 如果您使用此软件包并带有 TypeScript , 我们建议您使用以下设置: tsconfig.json 避免类型错误的文件 :

{
    "esModuleInterop": true,
    "module": "nodenext",
    "moduleResolution": "nodenext"
}

logHandledError

这个 logHandledError 函数可用于持续地将错误记录到控制台和Splunk 通过 可靠性 Kit 记录器。这种方法用于表示正在登录的错误已经正确处理,应用程序可以继续运行.

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

这将自动 序列化错误对象 记录下来 记录的信息是这样的:

{
    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 记录器。这种方法用于表示正在登录的错误是完全可以恢复的,没有向用户发送错误页.

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

记录的信息是这样的:

{
    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 记录器。这种方法用于表示记录的错误无法恢复,导致应用程序崩溃.

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

记录的信息是这样的:

{
    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'
    }
}

配置选项

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

logRecoverableError({
    // Options go here
});

options.error

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

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

options.includeHeaders

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

此选项默认为 :

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

使用实例:

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

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

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它可能执行其他方法,但是没有使用。 这些方法有一个非常宽容的签名:

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

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

此选项默认为 可靠性 Kit 记录器。 。 。 .

options.logUserErrorsAsWarnings

[注]
此选项仅在 logHandledError 函数.

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

此选项默认为 false。 。 。 .

options.request

请求对象(例如: Express.Request 对象 method 财务报告和审定财务报表 url 属性),在日志中包含出错。 这将是 自动序列化 @dotcom-reliability-kit/serialize-request。 。 。 .

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

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

{
    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'
    }
}

移动

咨询 移徙指南 如果你想要迁移到这个软件包的后期主要版本.

捐款

见 可靠性工具包中心贡献指南。 。 。 .

许可证

凭 麻省理工学院 执照.
版权:"2022","金融时报"有限公司.

版本与发布记录

@dotcom-reliability-kit/log-error 共发布 74 个版本,首次发布于 2022/06/13;过去 12 个月发布了 8 个版本。

版本发布日期距今
6.0.3latest2026/11/112 天前
6.0.22026/08/202 个月前
6.0.12026/07/144 个月前
6.0.02026/06/234 个月前
6.0.0-beta.1prerelease2026/06/035 个月前
5.1.82026/03/128 个月前

关于 @dotcom-reliability-kit/log-error 的常见问题

@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 和提交记录判断。