SuperAPI AI 工具集

logging

编程与开发

查看项目

更新于 10-15 21:38

技能介绍

用途:为库代码提供结构化、按级别、面向字段的日志,风格参照 Rust 的 tracing;错误以结构化数据处理,级别由调用点决定。

主要能力:从 wellcrafted/logger 导出 createLogger、consoleSink、memorySink、composeSinks 及类型。级别为 trace、debug、info、warn、error,无 fatal。warn/error 接收类型化错误(一元),trace/debug/info 为自由文本。原生 Error 也满足 { name, message } 结构契约,便于迁移。sink 形如 ((event) => void) & Partial<AsyncDisposable>;consoleSink 默认路由到 console[level],memorySink 供测试返回 { sink, events },composeSinks 扇出到多个 sink 并转发释放。LogEvent 含 ts、level、source、message、data。

使用方式:import { createLogger } from 'wellcrafted/logger'; const log = createLogger('name'); 默认 consoleSink;分支 Result 后记录,如 log.warn(result.error)。attach 原语接受可选 log?: Logger,默认 createLogger(<source>)。测试用 memorySink 注入并断言 events,而非 console 输出。用法保持依赖注入,无全局 logger 注册表或 setDefaultLogger()。

适用场景:库诊断、attach 原语、后台错误等。

限制:不在进程内提供文件 sink;持久化由宿主负责,可用 shell 重定向、systemd journal 或 Cloudflare tail。jsonlFileSink 已被移除。不要直接调用 sink,不要为新增日志在调用点 new Error;仅记录用的错误变体不导出为公共 API。序列化到网络时需将 ts 转为 ISO-8601 并展开原生 Error。具体版本行为、价格与平台支持暂未提供。