@beignet/provider-logger-pino

中文文档
0.0.65发布于 2026/11/08MITTypeScriptES Module近 30 天下载 1861

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

中文使用文档
文档目录13 节
  1. 安装
  2. 设置
  3. 环境
  4. 直接适配器
  5. 使用量
  6. 出口
  7. 已安装端口
  8. 仪器
  9. 失败行为
  10. 当地测试
  11. 部署说明
  12. 下一个读取
  13. 许可证

@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 方案尚存 内部.

安装

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

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

bun add -d pino-pretty

设置

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

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

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

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

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

环境

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

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

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

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

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(...) 当应用程序拥有皮诺配置,运输, 或目的地:

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; 数据 呼叫者拥有冲洗和目的地关闭。 它适用同样的默认 作为生命周期提供者的元数据和有儿童约束力的编辑.

使用量

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(...) 在建造前 消息,或当应用程序特定字段需要更严格的编辑时.

许可证

麻省理工学院

版本与发布记录

@beignet/provider-logger-pino 共发布 65 个版本,首次发布于 2026/05/27;过去 12 个月发布了 65 个版本。

版本发布日期距今
0.0.65latest2026/11/08今天
0.0.642026/11/034 天前
0.0.632026/11/026 天前
0.0.622026/11/017 天前
0.0.612026/11/017 天前
0.0.602026/11/017 天前

关于 @beignet/provider-logger-pino 的常见问题

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