@5app/logger

中文文档
2.4.0发布于 2026/08/05MITCommonJS近 30 天下载 2333

5app 微服务中使用的简单记录器

中文使用文档
文档目录5 节
  1. 使用量
  2. 选项
  3. 日志水平
  4. 黑警报
  5. 动态获取上下文

日志

在 dev 上输出 json 的简单控制台记录器

使用量

npm install --save @5app/logger
const logger = require('@5app/logger');

logger.info('An email was sent', {
  email: '[email protected]',
  template: 'template1',
});

logger.error(new Error('Unknown playlist 123'));

选项

日志可以选择使用下列环境变量进行自定义:

  • LOGS_FORMAT: 如果设置为 json,日志器会以json格式记录消息,而不是漂亮的消息(默认行为).
  • LOGS_LEVEL: 最小日志级别, 默认为 debug。接受值为 'debug', (中文(简体) ), 'info', (中文(简体) ), 'warn',以及 'error'
  • TAG: 释放要添加到日志信件中的标记( 如 docker 图像标记)

日志水平

日志级别是(从低到高优先级): 'debug', (中文(简体) ), 'info', (中文(简体) ), 'warn',以及 'error'。 。 。 . 伐木机提供伐木功能的签名如下: logger.<level>(message, objectOrError)

以下是如何使用日志的例子:

logger.error('An error happened', new ApiError('The api call failed', 404)); // will log the message, the error message, the stack trace, and the statusCode error property
logger.warn('Be warned', {a: 1, b: Date.now(), c: 'some string'});
logger.info('An event happened', {a: 1, b: Date.now(), c: 'some string'});
logger.debug('A minor operation', {a: 1, b: Date.now(), c: 'some string'});

黑警报

logger.slackAlert([level], message, ...) 日志, 如上面的正则函数, 但预开 slackAlert 并添加随机 slackAlertId (通过) crypto.randomUUID()用于记录的上下文,即使没有提供上下文,也生成上下文. level 是可选的,默认为 'error'当它必须是 'debug', (中文(简体) ), 'info', (中文(简体) ), 'warn',或 'error'。任何剩余的论据将逐一转交 logger.<level>,因此它们遵循该级别本身的签名(例如:. context 财务报告和审定财务报表 errorObject 页:1 'error'刚刚 context (对他人而言).

这是用来连接一个日志传输管道(例如,一个记录处理器,用于监视 slackAlert 前缀)将信件发送到Slack,使用 slackAlertId 将Slack站点与原日志线连接起来,同时仍按规定的严重程度进行记录.

logger.slackAlert('Payment provider is down', error); // level defaults to "error"
logger.slackAlert('warn', 'Queue depth is high', {depth: 1200}); // context is merged with {slackAlertId: '...'}
logger.slackAlert('warn', 'Queue depth is high'); // context defaults to {slackAlertId: '...'}
logger.slackAlert('error', 'Payment provider is down', {provider: 'stripe'}, error);
logger.slackAlert('error', 'Payment provider is down', error); // the (message, errorObject) shorthand also works; slackAlertId is added alongside the error details

注:因为 level 通过检查第一个参数是否是一个已知的关卡字符串,通过一个无法识别的关卡(例如,一个像 'eror'这不是一个错误——它被默默地读作 message 改为: level 默认为 'error'。 。 。 .

动态获取上下文

除了提供上下文对象外,您还可以使用 logger.addContext 以提供一个函数,该函数将调用每个日志获取上下文对象.

如果您在使用, 这会有所帮助 自动启动( h) 或者说 cls-按键 来存储类似线程本地存储的元数据.

例如,你可以做以下工作,而无需明确通过 correlationId 到每个日志 :

const asyncLocalStorage = new AsyncLocalStorage();

expressApp.use((req, res, next) {
  const correlationId = req.get('X-Correlation-Id') || uuidV4();
  asyncLocalStorage.run({correlationId}, () => next());
});

logger.addContext(() => asyncLocalStorage.getStore());
logger.info('User profile updated', {userId: 1234});

输出会像:

{"level":"info","timestamp":"2021-02-23T17:55:43.011Z","correlationId":"12bf5b37-e0b8-56e0-8dcf-dc8c4aefc123","userId":1234}

版本与发布记录

@5app/logger 共发布 12 个版本,首次发布于 2019/09/10;过去 12 个月发布了 1 个版本。

版本发布日期距今
2.4.0latest2026/08/053 个月前
2.3.12022/09/154 年前
2.3.02022/02/074 年前
2.2.02021/02/245 年前
2.1.02020/10/236 年前
2.0.22020/04/026 年前

关于 @5app/logger 的常见问题

@5app/logger 是什么?

5app 微服务中使用的简单记录器

如何安装 @5app/logger?

在项目目录运行 npm install @5app/logger,或使用 pnpm add / yarn add / bun add。

@5app/logger 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/5app__logger 是否存在。

@5app/logger 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@5app/logger 可以商用吗?

@5app/logger 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@5app/logger 的下载量有多少?

根据 npm 官方下载统计,@5app/logger 在 2026/10/05 – 2026/11/03 这 30 天内被下载 2,333 次,日均约 78 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@5app/logger 还在维护吗?

最新版本 2.4.0 发布于 2026/08/05(3 个月前);至今共发布 12 个版本,其中过去 12 个月发布了 1 个;首次发布于 2019/09/10。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。