# @beforeyoubid/logger-adapter 中文文档

规范地址：https://npmcn.com/package/%40beforeyoubid/logger-adapter/

版本：2\.1\.1
npm 元数据更新时间：2026-11-06T01:23:39.507Z
中文译文更新时间：2026-11-07T20:46:03.956Z
软件包许可：ISC

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

原始 npm 页面：https://www.npmjs.com/package/%40beforeyoubid/logger-adapter
原文对照：https://npmcn.com/package/%40beforeyoubid/logger-adapter/?lang=original
项目主页：https://github.com/beforeyoubid/npm-logger-adapter#readme
源码仓库：https://github.com/beforeyoubid/npm-logger-adapter

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

- 包体积（解压后）：169 kB，38 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- 运行依赖：3 个
- 首次发布：2020-08-15T08:46:52.133Z
- 最新版本发布：2026-11-06T01:23:39.338Z
- 近 30 天下载量：3286（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 2 个）

## 中文简介

一个将日志信息发送到Mezmo(原为LogDNA)的平台日志模块.

## 安装

```sh
npm install @beforeyoubid/logger-adapter
```

也可以使用：`pnpm add @beforeyoubid/logger-adapter`、`yarn add @beforeyoubid/logger-adapter`、`bun add @beforeyoubid/logger-adapter`

## README

# Mezmo (原日志DNA) Logger 适应器

笔记 - LogDNA决定暂时不将库名重命名为Mezmo. 为了避免有两个名字,我们决定 将变量、类等保留为LogDNA.

* * *

这是我们的BYB记录器模块,旨在支持多种两种记录方案.

-   一些 repos 可能严重依赖 Coper.log() 或类似于 Coper 上的输出日志 。 我们可以利用这个模块 环绕原始 `console` 所以所有的日志也可以寄给Mezmo。 服务需要添加 `consoleLogger.init()` 在处理器.
-   一个温斯顿日志 - 温斯顿创建了一个通用日志objec,允许我们在日志上进行各种操作,例如. 更改日志行的颜色,格式消息,可以自定义/添加自定义代码(使用传输机制)到 向 Mezmo 发送日志信息, 或者在数据库中存储 .

这个模块旨在一个本土节点运行时间和Lambda环境中工作. 兰巴达,请看 [模糊所有信件](https://npmcn.com/package/%40beforeyoubid/logger-adapter/#readme-Flush-All-Messages) 下节.

## 控制台 Logger 对 Winston Logger

-   别介意 `console.log()` 不是推荐的用于前端应用的方法,但是在 后门。 有一些限制:
    -   当地人 `console` 日志对象不支持 `LOG_LEVEL`。例如,您可能不希望 `console.debug()` 改为 在生产服务器上显示调试信息.
    -   不支持日志颜色
    -   不显示日期时间 这很难理解
    -   不支持向外部服务发送日志
-   控制台 Logger 覆盖现有的 `console` 目标作为采用 `logger` 对象.
    -   日志级别
    -   发送到外部服务
-   Winston Logger 解决上述所有限制

使用时 `console.log` 尚未准备好切换到温斯顿日志,此模块 也可以帮你.

### 版本数

-   **v1.x.x (第一版) (中文(简体) )**
    -   最初创建于2020年,但 `logdna` 模块不再维护([https://www.npmjs.com/package/logdna (中文(简体) )](https://www.npmjs.com/package/logdna)) (中文(简体) ). 我们需要远离它.
-   **v2.x.x (英语)**
    -   利用Mezmo团队积极维护的最新模块(https://www.npmjs.com/package/@logdna/logger)
    -   修补一个缺失的对数线问题,因为 `logdna-winston` 模块创建单独的日志 无法在Lambda终止前完全冲出消息。 我们决定 在此工程中自定义此模块, 并允许我们使用 LogDNA 日志对象的一例, 这样可以 `ensureFlushAll()` 可以在我们终止Lambda功能前冲出这些消息. 这个单一的日志DNA是共享和 被控制台日志包装和LogDNA传输都用作温斯顿日志系统的一部分.
    -   虽然这不是一个重大改变,但该模块的用户希望有一个可解释的升级版本。 只是更新到 最新 v2 版本; 消费者方面不需要 API 修改.
    -   也动了 `createLoggerObject()` 输入此共享模块, 这样在返回前更容易使用和前缀消息 实际日志对象。 譬如说. `createLoggerObject(`\[LOG-PREFIX\] (英语)`);`
    -   ![V2 Diagram](https://npmcn.com/package/%40beforeyoubid/logger-adapter/docs/v2-diagram.png)
-   **v2.0.3 起数**
    -   添加通用 `MetricLogger`

## 1) 使用控制台锁定器

```
  yarn add @beforeyoubid/logger-adapter
```

### 启动它

我们遵循12个要素,通过提供LOGDNA KEY作为环境的一部分,可以启用日志并发送到LogDNA 变量.

```
  LOGDNA_KEY=xxxxxxyyyyyyyzzzzzzz
```

请注意,在当地,你可以设置 `LOGDNA_KEY=` 以禁用向 LogDNA 发送日志。 供应 `LOG_LEVEL` 作为组成部分 环境变量.

另外,你可以留着 `LOGDNA_KEY` 值与您为其它环境设置的相同, 但可以禁用发送日志 设置 `LOGDNA_ENABLED=false` 在您的嵌入变量中.

### 为非lambda环境

```
    import { consoleLogger } from '@beforeyoubid/logger-adapter';
    consoleLogger.init();

    // Don't need to call consoleLogger.flushAll(), logdna object has default flush interval interval at 250ms
```

## 模糊所有信件

LogDNA将消息放入缓冲器,并每250ms推出. 如果Lambda在这些间隔之前被终止了, 可能有些消息日志没有发送到LogDNA. 使用 `ensureFlushAll()` 自动冲出信件.

### Lambda: 对无服务器快车使用处理器包装

```
  import { consoleLogger, ensureFlushAll } from '@beforeyoubid/logger-adapter';
  consoleLogger.init();

  export default ensureFlushAll(yourLambdaHandler);

```

### Lambda: 用回调处理器

```
  import { consoleLogger, ensureFlushAllCallback } from '@beforeyoubid/logger-adapter';
  consoleLogger.init();

  export default ensureFlushAllCallback(yourLambdaHandlerCallback);

```

## 2) 使用温斯顿·洛格

```
  yarn add @beforeyoubid/logger-adapter
```

### 启动它

我们遵循12个要素,通过提供LOGDNA KEY作为环境的一部分,可以启用日志并发送到LogDNA 变量.

```
  LOGDNA_KEY=xxxxxxyyyyyyyzzzzzzz
```

请注意,在当地,你可以设置 `LOGDNA_KEY=` 以禁用向 LogDNA 发送日志。 供应 `LOG_LEVEL` 作为组成部分 环境变量.

### 为非lambda环境

```
    import { logger } from '@beforeyoubid/logger-adapter';

    logger.debug('This message only show up when LOG_LEVEL is set to "debug"')
    logger.info('This message only show up when LOG_LEVEL is set to "info"')
```

### Lambda: 对无服务器快车使用处理器包装

```
  import { logger, ensureFlushAll } from '@beforeyoubid/logger-adapter';

  // you can use logger.debug('log text in a string format');

  export default ensureFlushAll(yourLambdaHandler);

```

### Lambda: 用回调处理器

```
  import { logger, ensureFlushAllCallback } from '@beforeyoubid/logger-adapter';

  // you can use logger.debug('log text in a string format');

  export default ensureFlushAllCallback(yourLambdaHandlerCallback);


```

### 前置日志消息

在某些情况下,您可能想要有一个更清晰的日志消息,方法是用一个预先定义的字符串,例如您的名称 模块,所以它们看起来像这样. ![Log prefix](https://npmcn.com/package/%40beforeyoubid/logger-adapter/docs/log-prefix.png)

```
  import { getLoggerObject } from '@beforeyoubid/logger-adapter';

  const logger = getLoggerObject('[Your Custom Prefix]');

  logger.info('the usual log string...')
```

**注意到** 3⁄4 ̄ ̧漯B. `import { logger } from '@beforeyoubid/logger-adapter';`它只为您和您添加日志行前缀 返回时带有调试、信息、警告、出错等功能.

## 计量工具

**动机 :**

-   Mezmo 是记录和调试的主要遥测工具之一
-   我们还可以使用Mezmo收集、处理和显示基于日志信息的商业衡量标准,而无需额外收费 现有计划
-   设定很简单,Mezmo从盒子里做这个

**怎么会这样?**

-   当一个JSON字符串(例如. `JSON.stringify(jsonObject)`)被送到了Mezmo,Mezmo足够聪明地将这个解为a json 对象和自动索引
-   通过这一过程,我们可以在物体中查找任何值,并(或)在任何具体的衡量标准上建立一个仪表板 合适的
-   唯一的缺点是,按照账户上的数据保留政策,数据保留通常限于30天

**如何使用 :**

-   [样本计量](https://npmcn.com/package/%40beforeyoubid/logger-adapter/samples/metricLogger.md)
-   [样本1](https://npmcn.com/package/%40beforeyoubid/logger-adapter/samples/metricLogger1.sample.ts)
-   [样本2](https://npmcn.com/package/%40beforeyoubid/logger-adapter/samples/metricLogger2.sample.ts)

## 常见问题

### @beforeyoubid/logger-adapter 是什么？

一个将日志信息发送到Mezmo\(原为LogDNA\)的平台日志模块\.

### 如何安装 @beforeyoubid/logger-adapter？

在项目目录运行 npm install @beforeyoubid/logger-adapter，或使用 pnpm add / yarn add / bun add。

### @beforeyoubid/logger-adapter 支持 TypeScript 吗？

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

### @beforeyoubid/logger-adapter 支持 ESM 还是 CommonJS？

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

### @beforeyoubid/logger-adapter 可以商用吗？

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

### @beforeyoubid/logger-adapter 的下载量有多少？

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

### @beforeyoubid/logger-adapter 还在维护吗？

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

