用途
@workleap/logging 是一个面向 Workleap 前端 TypeScript 应用的结构化日志库,用于在浏览器端生成可组合、带样式的控制台日志,并支持与遥测工具集成。
主要能力
- 记录器(Loggers)
- BrowserConsoleLogger:输出到浏览器控制台,支持样式。
- CompositeLogger:将日志转发到多个底层记录器。
- 日志级别(从低到高严重程度)
- debug:开发阶段的详细诊断信息。
- information:一般应用流程事件。
- warning:需要关注的非关键问题。
- error:导致功能失效的失败。
- critical:可能危及数据完整性的严重错误。
- 作用域(Scopes):将相关日志条目归组到某个标签下,便于追踪操作或关联事件。
- 链式片段(Chained Segments):通过链式调用构建复杂日志条目。
使用方式
安装:
pnpm add @workleap/logging
链式片段示例(必须以日志级别方法结尾,否则不会输出):
logger
.withText("Processing order")
.withObject({ orderId: 123 })
.withError(new Error("Failed"))
.error();
作用域示例(Squide 场景,需先转换为 RootLogger):
import { useLogger } from "@squide/firefly";
import type { RootLogger } from "@workleap/logging";
const logger = useLogger();
(logger as RootLogger).startScope("User signup");
适用场景
适用于 Workleap 前端 TypeScript 应用中的结构化日志记录,包括应用初始化配置、错误日志记录、作用域追踪、多目标输出,以及 LogRocket 集成等场景。
限制与注意事项
- 只有 RootLogger 实例才能启动作用域。若记录器类型为 Logger(例如通过 Squide 的 useLogger() 获取),必须先转换为 RootLogger 再调用 startScope。
- 链式片段必须调用日志级别方法(.debug()、.error() 等)才会输出。
- 作用域必须调用 scope.end(),否则日志不会输出。
- 应使用正确的日志级别:失败使用 error,而非 warning。
- 切勿记录密码、令牌或 PII 等敏感数据。
- 记录错误时应包含上下文:使用 withObject() 提供相关数据,使用 withError() 提供异常。
参考文档
- references/api.md:记录器构造函数、所有方法(带样式文本、换行)、作用域 API、createCompositeLogger、日志级别指南。
- references/patterns.md:常见模式(应用设置、错误日志、作用域、多目标)、LogRocket 集成、PR 审查清单。