SuperAPI AI 工具集

workleap-logging

编程与开发

查看项目

更新于 10-16 04:39

技能介绍

用途

@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 审查清单。