nest-boot-logger
Installation
SKILL.md
概览
@nest-boot/logger 是对 pino 的 NestJS 适配封装。Logger provider 使用 transient scope;请求级 bindings 存放在 @nest-boot/request-context 中。相比 NestJS 内置的 Logger,它额外支持:
- 结构化绑定 (
assign): 可以向日志条目追加上下文键值对,自动附着到同一请求链路的后续日志中。 - 集中注册: 在宿主应用的组合根或公共基础设施模块中注册
LoggerModule,避免业务模块重复初始化。
核心原则
- 业务类导入
@nest-boot/logger的Logger。 它与@nestjs/common的同名类不同,支持结构化绑定与 pino 序列化。 - 通过构造函数依赖注入获取 Logger 实例。 不要手动
new Logger()。 - 默认使用自动上下文。 Logger 会从 NestJS
INQUIRER获取注入类名;只有动态 Processor 等无法正确推断时才调用setContext()覆盖。 - 只在活动 RequestContext 中使用
assign。 HTTP/GraphQL 请求和@nest-boot/bullmqProcessor 已建立上下文;其他后台入口应先建立 RequestContext,或把字段附在单条日志调用上。 - 只记录可审计标识,不记录凭证。 API key、Authorization、Cookie、私钥、完整 webhook body 和供应商签名不得进入日志;使用 requestId、eventId、resourceId、tenantId 等安全标识定位问题。