SuperAPI AI 工具集

logging-best-practices

部署与运维

查看项目

更新于 10-15 16:49

技能介绍

用途:在应用中统一使用 Pino 输出结构化日志,适用于为路由、库或工作流添加日志。需先完成 Pino Logging Setup 前置设置。

主要能力与用法:从 @/lib/logging/logger 导入 logger,签名是上下文对象在前、消息在后;错误放在上下文对象的 err 字段。例如 logger.info({ port: 3000 }, "Server started")、logger.warn({ endpoint: "/api/chat" }, "Rate limit reached")、logger.debug({ key: "user:123" }, "Cache miss")、logger.error({ err, userId: "123", endpoint: "/api/chat" }, "Request failed")。

日志级别:trace 用于详细调试(少用)、debug 用于开发排错、info 用于正常操作与业务事件、warn 用于可恢复问题与弃用警告、error 用于需要关注的失败、fatal 用于应用无法继续的严重故障。通过 LOG_LEVEL 设置阈值,默认 info,生产环境建议 warn,例如 LOG_LEVEL="debug"。

API 路由:在请求返回时记录日志并附带耗时上下文。示例中记录开始时间,成功时 logger.info({ duration, status: 200 }, "Request completed"),失败时 logger.error({ err, duration }, "Request failed") 并返回 500。

工作流:工作流运行时无法导入 Node 模块,不能直接调用 logger,需用 "use step" 函数包装。示例定义 log(level, message, data?),内部调用 logger[level](data, message) 或 loggerlevel,再在工作流("use workflow")中 await log("info", "Workflow started", { chatId })。

限制与前提:需先完成 Pino Logging Setup;工作流必须经 step 包装才能记日志;LOG_LEVEL 默认 info,生产建议 warn。