Logger 日志
NocoBase 提供了一个基于 pino 的高性能日志系统。在任意拥有 context 的地方,都可以通过 ctx.logger 获取日志实例,用于记录插件或系统运行时的关键日志。
基本用法
这些方法对应不同的日志级别(从高到低):
日志格式
每条日志输出均为结构化 JSON 格式,默认包含以下字段:
示例输出:
上下文绑定
ctx.logger 会自动注入上下文信息,例如当前插件、模块或请求来源,使日志能更准确地追踪来源。
输出示例(带上下文):
自定义日志
你可以在插件中创建自定义的 logger 实例,继承或扩展默认配置:
子 logger 会继承主 logger 的配置并自动附加上下文。
日志级别划分
Pino 的日志级别遵循从高到低的数值定义,数值越小,优先级越低。
以下是完整的日志级别划分表:
Pino 只会输出大于或等于当前 level 配置的日志。例如,当日志级别为 info 时,debug 和 trace 的日志将被忽略。
在插件开发中的最佳实践
-
使用上下文日志
在插件、模型或应用上下文中使用ctx.logger,可自动携带来源信息。 -
区分日志级别
- 使用
error记录业务异常 - 使用
info记录状态变化 - 使用
debug记录开发调试信息
- 使用
-
避免过量日志
尤其在debug与trace级别下,建议仅在开发环境开启。 -
使用结构化数据
传入对象参数而非拼接字符串,有助于日志分析与过滤。
通过以上方式,开发者可以更高效地追踪插件执行过程、排查问题,并保持日志系统的结构化与可扩展性。

