createDebugger
创建调试器工厂函数,提供强大的调试功能,支持条件启用和样式化输出。
前置依赖
依赖参数
| 参数名 | 类型 | 说明 |
|---|---|---|
deps.log | Console['log'] | 日志函数 |
deps.error | Console['error'] | 错误日志函数 |
deps.warn | Console['warn'] | 警告日志函数 |
deps.info | Console['info'] | 信息日志函数 |
deps.group | Console['group'] | 分组函数 |
deps.groupCollapsed | Console['groupCollapsed'] | 折叠分组函数 |
deps.groupEnd | Console['groupEnd'] | 结束分组函数 |
deps.trace | Console['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.flag | string | 是 | 调试标志,用于区分不同的调试器 |
options.color | DebuggerColor | 否 | 可选的颜色配置 |
options.force | boolean | 否 | 是否强制启用调试(忽略环境检查) |
deps | DebuggerDeps | 是 | 依赖注入对象 |
返回值
| 类型 | 说明 |
|---|---|
Debugger | 调试器对象,包含各种日志方法 |
工作原理
- 检查调试状态:
- 如果
force为 true,直接启用调试 - 否则检查是否为开发环境
- 通过
getDebugFlag获取调试标志状态(支持从 URL、localStorage、环境变量等获取)
- 如果
- 缓存调试状态:避免重复计算,提高性能
- 创建日志方法:为每种日志类型创建带条件检查的方法
- 样式化输出:如果提供了颜色配置,使用 CSS 样式格式化输出
- 返回调试器对象:包含 log、error、warn、info、group、groupEnd、trace 等方法
所有日志方法都会先检查调试状态,只有在启用调试时才会输出,避免生产环境的性能影响。