Skip to content

createDebugger

创建调试器工厂函数,提供强大的调试功能,支持条件启用和样式化输出。

前置依赖

依赖参数

参数名类型说明
deps.logConsole['log']日志函数
deps.errorConsole['error']错误日志函数
deps.warnConsole['warn']警告日志函数
deps.infoConsole['info']信息日志函数
deps.groupConsole['group']分组函数
deps.groupCollapsedConsole['groupCollapsed']折叠分组函数
deps.groupEndConsole['groupEnd']结束分组函数
deps.traceConsole['trace']追踪函数
deps.isDevelopment() => boolean检查是否为开发环境
deps.getDebugFlag(flag: string) => boolean获取调试标志

函数签名

typescript
function createDebugger(
  options: DebuggerOptions,
  deps: DebuggerDeps
): Debugger

interface DebuggerOptions {
  flag: string                    // 调试标志,用于区分不同的调试器
  color?: DebuggerColor           // 可选的颜色配置
  force?: boolean                 // 是否强制启用调试(忽略环境检查)
}

interface DebuggerColor {
  color: string                  // 文字颜色
  background: string             // 背景颜色
}

interface Debugger {
  log: (message: string, ...args: any[]) => void
  group: (title: string, collapsed?: boolean) => void
  groupEnd: () => void
  trace: (message: string) => void
  error: (message: string, ...args: any[]) => void
  warn: (message: string, ...args: any[]) => void
  info: (message: string, ...args: any[]) => void
}

参数

参数名类型必填说明
options.flagstring调试标志,用于区分不同的调试器
options.colorDebuggerColor可选的颜色配置
options.forceboolean是否强制启用调试(忽略环境检查)
depsDebuggerDeps依赖注入对象

返回值

类型说明
Debugger调试器对象,包含各种日志方法

工作原理

  1. 检查调试状态
    • 如果 force 为 true,直接启用调试
    • 否则检查是否为开发环境
    • 通过 getDebugFlag 获取调试标志状态(支持从 URL、localStorage、环境变量等获取)
  2. 缓存调试状态:避免重复计算,提高性能
  3. 创建日志方法:为每种日志类型创建带条件检查的方法
  4. 样式化输出:如果提供了颜色配置,使用 CSS 样式格式化输出
  5. 返回调试器对象:包含 log、error、warn、info、group、groupEnd、trace 等方法

所有日志方法都会先检查调试状态,只有在启用调试时才会输出,避免生产环境的性能影响。