SuperAPI AI 工具集

logging

编程与开发

查看项目

更新于 10-15 21:37

技能介绍

用途:该文档描述 inbox-zero 项目的后端日志做法,采用集中式、请求作用域的日志模式:日志器由中间件创建,并沿请求/函数调用链传递。

主要能力:API 路由使用中间件包装器自动创建带请求上下文的日志器,可用 withError、withAuth、withEmailAccount、withEmailProvider。中间件会自动附加 requestId(请求追踪唯一 ID)、url、认证路由的 userId,以及邮件账户路由的 emailAccountId 和 email。路由内可用 logger.with() 补充额外上下文,例如 messageId。辅助函数应把 logger 作为参数接收,而不是自行创建。Server Action 通过 actionClient 的上下文获得 logger,同时提供 emailAccountId 与 provider。

使用方式:从 @/utils/middleware 导入 withError、withAuth、withEmailAccount、withEmailProvider 并包装路由处理函数,在函数内使用 request.logger;需要更多上下文时用 logger.with({...})。辅助函数从 @/utils/logger 导入 Logger 类型,以参数形式接收 logger。actionClient 从 @/utils/actions/safe-action 导入,在 action 回调的 ctx 中解构 logger。仅在代码不运行于中间件链(路由或 action)中时使用 createScopedLogger,从 @/utils/logger 导入,用于独立脚本或测试;不要在全局或文件级日志器上使用 .with(),只在具体函数内使用。

适用场景:为 inbox-zero 后端编写路由、安全 action 或辅助函数的开发者。

限制:资料未提供日志级别配置、输出目标、格式、采样或性能影响等细节,暂未提供。