@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","金融时报"有限公司.