基于 pino 的日志封装,提供高性能结构化 JSON 日志。推荐使用 ctx.logger 代替 console 以便于日志采集与分析。
所有 RunJS 场景均可使用 ctx.logger,用于调试、错误追踪、性能分析等。
ctx.logger 为 engine.logger.child({ module: 'flow-engine' }),即带 module 上下文的 pino 子 logger。
pino 支持以下级别(从高到低):
| 级别 | 方法 | 说明 |
|---|---|---|
fatal | ctx.logger.fatal() | 致命错误,通常导致进程退出 |
error | ctx.logger.error() | 错误,表示请求或操作失败 |
warn | ctx.logger.warn() | 警告,表示潜在风险或异常情况 |
info | ctx.logger.info() | 一般运行时信息 |
debug | ctx.logger.debug() | 调试信息,用于开发 |
trace | ctx.logger.trace() | 详细追踪,用于深度诊断 |
推荐使用 level(msg, meta) 形式:消息在前,可选元数据对象在后。
pino 也支持 level(meta, msg)(对象在前)或 level({ msg, ...meta })(单对象),可按需使用。
推荐直接使用 ctx.logger 以获得结构化 JSON 日志。若习惯使用 console,可对应:console.log → ctx.logger.info,console.error → ctx.logger.error,console.warn → ctx.logger.warn。
pino 输出结构化 JSON,每条日志包含:
level:日志级别(数字)time:时间戳(毫秒)msg:日志消息module:固定为 flow-enginechild() 创建的子 logger 同样推荐 level(msg, meta) 写法