Skip to content

调试输出

DD 提供一组快速调试输出函数,用于开发和调试阶段的数据可视化。

包级调试函数

通过 dd. 前缀直接调用:

函数签名说明
Print(args ...any)输出到全局日志记录器的 Writer(LevelInfo,受安全过滤)
Println(args ...any)同 Print(底层 Log() 已自动换行,受安全过滤)
Printf(format string, args ...any)格式化输出(LevelInfo,受安全过滤)
go
dd.Print("值:", 42, true)
dd.Println("与 Print 行为一致")
dd.Printf("用户: %s, ID: %d", name, id)

安全过滤

Print 系列函数经过敏感数据过滤,适合输出可能含敏感信息的调试数据。

JSON 输出

函数签名说明
JSON(data ...any)紧凑 JSON 格式输出到 stdout(含调用者信息)
JSONF(format string, args ...any)格式化字符串作为紧凑 JSON 输出到 stdout(含调用者信息)
go
user := map[string]any{"name": "admin", "role": "super"}
dd.JSON(user)
// 输出:main.go:42 {"name":"admin","role":"super"}

不经过安全过滤

JSON/JSONF 直接输出原始数据,不经过敏感数据过滤。请勿在生产环境使用。

Text 输出

函数签名说明
Text(data ...any)美化打印格式输出到 stdout
Textf(format string, args ...any)格式化文本输出到 stdout
go
dd.Text(complexData)
dd.Textf("处理结果:%+v", result)

Exit 函数

函数签名说明
Exit(data ...any)带调用者信息的文本输出后退出(exit code 0),复杂类型自动美化打印,不经过安全过滤
Exitf(format string, args ...any)带调用者信息的格式化输出后退出(exit code 0),不经过安全过滤
go
dd.Exit("调试断点", someData)
// 输出带调用者信息的文本(复杂类型自动美化打印)后调用 os.Exit(0)

Logger 方法

Logger 实例也提供同名方法(Exit/Exitf 除外,仅包级函数可用):

go
logger := dd.Default()

// Print 系列写入配置的 Writer(受安全过滤)
logger.Print("实例方法")

// JSON/Text 直接输出到 stdout(不经过安全过滤)
logger.JSON(data)
logger.Text(data)

Logger 方法与包级函数的区别

logger.Print() 通过当前 Logger 实例配置的 Writer 输出并经过安全过滤,dd.Print() 通过全局日志记录器的 Writer 输出并经过安全过滤。两者行为类似但输出目标可能不同。logger.JSON()logger.Text()dd.JSON()dd.Text() 一样,直接输出到 stdout,不经过安全过滤

适用场景

场景推荐函数
快速打印值dd.Print()
查看结构体dd.JSON()
格式化输出dd.Text()
调试断点dd.Exit()
可能含敏感信息dd.Print()(自动过滤)
性能分析数据dd.JSON()

仅用于调试

JSONTextExit 系列设计用于开发调试,不应用在生产代码中(它们不经过敏感数据过滤,直接输出到 stdout)。Print/Println/Printf 行为等同 Info(LevelInfo + 安全过滤 + 配置的 writer),可用于生产。生产环境优先使用 InfoError 等标准日志方法。

下一步