# @beignet/provider-logger-pino 中文文档

规范地址：https://npmcn.com/package/%40beignet/provider-logger-pino/

版本：0\.0\.65
npm 元数据更新时间：2026-11-07T23:23:55.822Z
中文译文更新时间：2026-11-08T07:47:51.918Z
软件包许可：MIT

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

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

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

- 包体积（解压后）：49.8 kB，9 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=22\.12\.0
- 运行依赖：1 个
- peer 依赖：pino ^9\.0\.0 \|\| ^10\.0\.0，@beignet/core \>=0\.0\.3 \<1\.0\.0
- 首次发布：2026-05-26T16:50:04.401Z
- 最新版本发布：2026-11-07T23:23:55.649Z
- 近 30 天下载量：1861（2026-10-08 至 2026-11-06，npm 官方下载统计）
- 已发布版本数：65（近 12 个月 65 个）

## 中文简介

Beignet 的 Pino 日志提供者 - 使用 pino 添加日志端口

## 安装

```sh
npm install @beignet/provider-logger-pino
```

也可以使用：`pnpm add @beignet/provider-logger-pino`、`yarn add @beignet/provider-logger-pino`、`bun add @beignet/provider-logger-pino`

## README

# @beignet/ professor-logger-pino (英语)

> **运行时间 :** Beignet需要Node.js 22.12或更新. Bun是可选的.

> \[叹息\] Beignet是实验性的α软件. 这个 `0.0.x` 包行为早期 评估,且在框架结算时,API可能在发布之间发生变化.

皮诺支持 `LoggerPort` 为Beignet提供供应商.

需要时使用此软件包 `ctx.ports.logger` 由皮诺支持,同时保留 取决于稳定状态的应用程序代码 `LoggerPort` 界面从 `@beignet/core/ports`。 。 。 .

`createPinoLoggerProvider(...)` 返回稳定 `PinoLoggerProvider` 类型. `LoggerPinoConfig` 描述其已验证的配置; Zod 方案尚存 内部.

## 安装

```bash
bun add @beignet/core @beignet/provider-logger-pino pino
```

漂亮的开发日志是可选的 :

```bash
bun add -d pino-pretty
```

## 设置

Beignet 启动器已经注册 `createPinoLoggerProvider()` 内 `server/providers.ts`。在保存其他条目时配置该条目 提供者和现有的服务器上下文 :

```ts
// server/providers.ts (Pino entry excerpt)
createPinoLoggerProvider({ level: "info", format: "json", service: "api" }),
```

工厂是从 `@beignet/provider-logger-pino`在手动操作中 组装的应用程序, 添加导入并注册一个实例 提供者列表 。 见 [伐木指南](https://beignetjs.com/logging) (单位:千美元) 完成待办事宜使用大小写和校验步骤.

提供者安装 `ctx.ports.logger`。 。 。 . 它冲刷供应商拥有的 Pino 记录器 `server.stop()` 如此缓冲 目的地在关闭前会排出水 关闭工人支持的漂亮地方 当Beignet创建它时,运输. 每个结构化的元数据对象和孩子捆绑通过Beignet的 默认在到达皮诺之前进行递归性证书编辑.

`beignet doctor --strict` 检查安装的 Pino 日志提供者是 登记在册 `server/providers.ts`。 。 。 .

## 环境

提供者读 `LOG_`\- 前置环境变量:

| 变量 | 默认 | 说明 |
| --- | --- | --- |
| `LOG_LEVEL` | `info` | `trace`, (中文(简体) ), `debug`, (中文(简体) ), `info`, (中文(简体) ), `warn`, (中文(简体) ), `error`,或 `fatal` |
| `LOG_FORMAT` | `json` | `json` 或者说 `pretty` |
| `LOG_SERVICE` | 无 | 在日志绑定中添加了可选服务名称 |
| `LOG_TIMESTAMP` | `true` | 包含 ISO 时间戳; 接受 `true` 或者说 `false` |

`LOG_FORMAT=pretty` 需求 `pino-pretty`。如果无法提供,则提供者 回到JSON伐木 发出警告.

使用 `createPinoLoggerProvider(...)` 当您想要直接传递选项时 而不是只依赖 `LOG_*` (原始内容存档于2018-10-21). Env vars. 选项覆盖源代码 值 :

```ts
import { createPinoLoggerProvider } from "@beignet/provider-logger-pino";

// Replace the existing provider call with these options.
const loggerProvider = createPinoLoggerProvider({
  level: "debug",
  format: "pretty",
  service: "api",
  timestamp: true,
});
```

### 直接适配器

使用 `createPinoLogger(...)` 当应用程序拥有皮诺配置,运输, 或目的地:

```ts
import { createPinoLogger } from "@beignet/provider-logger-pino";
import pino from "pino";

const destination = pino.destination("./app.log");
const pinoLogger = pino({ level: "info" }, destination);
const logger = createPinoLogger({ logger: pinoLogger });
```

直通工厂只把供应的平野伐木机改装成 `LoggerPort`; 数据 呼叫者拥有冲洗和目的地关闭。 它适用同样的默认 作为生命周期提供者的元数据和有儿童约束力的编辑.

## 使用量

```ts
ctx.ports.logger.info("Post published", {
  postId: post.id,
  actorId: ctx.actor.type === "user" ? ctx.actor.id : undefined,
});

const log = ctx.ports.logger.child({ requestId: ctx.requestId });
log.error("Failed to publish post", { error });
```

## 出口

| 导出 | 目的 |
| --- | --- |
| `createPinoLogger(options)` | 调整一个应用的 Pino 日志 `LoggerPort` |
| `CreatePinoLoggerOptions` | 备选方案 `createPinoLogger()` |
| `createPinoLoggerProvider(options?)` | 提供者工厂; 省略选项使用 `LOG_*` 嵌入值 |
| `CreatePinoLoggerProviderOptions` | 备选方案 `createPinoLoggerProvider()` |
| `LoggerPinoConfig` | 验证的提供者配置类型 |
| `LoggerPort` | 从 `@beignet/core/ports` |
| `LogLevel` | 从 `@beignet/core/ports` |

## 已安装端口

提供者提供 `ctx.ports.logger`,标准贝格网 `LoggerPort`启用 `createPinoLogger(...)` 当应用基础设施需要拥有时 基本的 Pino 日志; 应用程序工作流程应继续依赖于 马厩港.

## 仪器

此提供者不为每次日志调用记录 devtools 提供者事件 。 日志 是主要产出。 在外部提供者上使用提供者仪器 工作,包括: `requestId`, (中文(简体) ), `traceId`、演员、租户或特色 当这些字段是有用的操作背景时,日志绑定中的元数据.

## 失败行为

无效 `LOG_*` 配置在提供者设置中失败 。 若为 `LOG_FORMAT=pretty` 配置时没有 `pino-pretty`,提供者倒下 向 JSON 记录并发出警告,而不是启动失败 。 供应商拥有 记录器冲出或运输关闭故障从 `server.stop()` 作为 提供者关闭出错 .

## 当地测试

使用 `LOG_FORMAT=pretty` 地方发展 `pino-pretty` 已安装. 使用内存或假 `LoggerPort` 当断言不应该使用时 依赖于控制台输出.

## 部署说明

在生产中使用 JSON 日志, 除非运行时间明确期望格式化 语句。 设定 `LOG_SERVICE` 包括请求/跟踪元数据 从Beignet的上下文中,日志与devtools、提供者活动以及 错误报告 .

默认的编辑覆盖敏感的结构密钥, 如令牌, 密码, 饼干、授权标题、会话和证书,包括嵌入式 物品和儿童绑定。 日志信件没有被重写, 所以从不插入 输入信件字符串的秘密。 使用 `redactValue(...)` 在建造前 消息,或当应用程序特定字段需要更严格的编辑时.

## 下一个读取

-   Docs 站点记录指南 : [https://beignetjs.com/logb (中文(简体) )](https://beignetjs.com/logging)
-   供应商: [https://beignetjs.com/ 提供者](https://beignetjs.com/providers)
-   皮诺文件: [https://getpino.io/ (英语)](https://getpino.io/)

## 许可证

麻省理工学院

## 常见问题

### @beignet/provider-logger-pino 是什么？

Beignet 的 Pino 日志提供者 - 使用 pino 添加日志端口

### 如何安装 @beignet/provider-logger-pino？

在项目目录运行 npm install @beignet/provider-logger-pino，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：pino（^9\.0\.0 \|\| ^10\.0\.0）、@beignet/core（\>=0\.0\.3 \<1\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @beignet/provider-logger-pino 支持 TypeScript 吗？

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

### @beignet/provider-logger-pino 支持 ESM 还是 CommonJS？

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

### @beignet/provider-logger-pino 需要什么版本的 Node\.js？

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

### @beignet/provider-logger-pino 可以商用吗？

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

### @beignet/provider-logger-pino 的下载量有多少？

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

### @beignet/provider-logger-pino 还在维护吗？

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

