速查表
创建日志记录器
| 方式 | 代码 | 说明 |
|---|---|---|
| 全局默认 | dd.Info("msg") | 零配置即用 |
| 开发模式 | dd.New(dd.DevelopmentConfig()) | DEBUG 级别,带 caller |
| 自定义 | dd.New(dd.Config{Targets: ...}) | 完整配置 |
| 文件 | dd.New(dd.Config{Targets: []dd.OutputTarget{dd.FileOutput("path")}}) | 仅文件输出 |
| 双目标 | dd.New(dd.Config{Targets: []dd.OutputTarget{dd.ConsoleOutput(), dd.FileOutput("path")}}) | 控制台 + 文件 |
| JSON 双目标 | dd.New(dd.Config{Format: dd.FormatJSON, Targets: []dd.OutputTarget{dd.ConsoleOutput(), dd.FileOutput("path")}}) | JSON 格式双目标 |
配置零值
表中 dd.Config{...} 字面量未设置的字段均为零值(Level=Debug、IncludeTime/IncludeLevel/DynamicCaller=false,输出无时间戳/级别/caller)。生产环境建议以 dd.DefaultConfig() 为基础再覆盖所需字段。
预设配置
go
dd.DefaultConfig() // 默认配置:INFO 级别,文本格式
dd.DevelopmentConfig() // 开发配置:DEBUG 级别,动态 caller
dd.JSONConfig() // JSON 配置:DEBUG 级别 + JSON 格式输出日志级别
| 级别 | 常量 | 方法 | 格式化 |
|---|---|---|---|
| Debug | LevelDebug | Debug() | Debugf() |
| Info | LevelInfo | Info() | Infof() |
| Warn | LevelWarn | Warn() | Warnf() |
| Error | LevelError | Error() | Errorf() |
| Fatal | LevelFatal | Fatal() | Fatalf() |
结构化版本:DebugWith()、InfoWith()、WarnWith()、ErrorWith()、FatalWith()
字段构造器
| 类型 | 构造器 | 示例 |
|---|---|---|
| 通用 | Any(key, val) | dd.Any("data", obj) |
| 字符串 | String(key, val) | dd.String("name", "test") |
| 整数 | Int(key, val) | dd.Int("count", 42) |
| 布尔 | Bool(key, val) | dd.Bool("ok", true) |
| 时间 | Time(key, val) | dd.Time("ts", time.Now()) |
| 持续时间 | Duration(key, val) | dd.Duration("took", 100*time.Millisecond) |
| 错误 | Err(err) | dd.Err(err) |
| 错误 + 栈 | ErrWithStack(err) | dd.ErrWithStack(err) |
字段链
go
// 预设字段
entry := dd.WithFields(dd.String("svc", "api"))
entry.Info("启动") // 自动携带 svc=api
// 追加字段
entry2 := entry.WithField("env", "prod")
entry2.Info("环境就绪") // 携带 svc + env输出目标
go
// 文件写入器(自动轮换)
fw, _ := dd.NewFileWriter("logs/app.log", dd.DefaultFileWriterConfig())
// 缓冲写入器
bwCfg := dd.DefaultBufferedWriterConfig()
bwCfg.BufferSize = 4096
bw, _ := dd.NewBufferedWriter(os.Stdout, bwCfg)
// 多写入器
mw := dd.NewMultiWriter(os.Stdout, fw)上下文集成
go
ctx = dd.WithTraceID(ctx, "trace-123")
ctx = dd.WithRequestID(ctx, "req-456")
dd.GetTraceID(ctx) // "trace-123"
dd.GetRequestID(ctx) // "req-456"安全配置
go
dd.DefaultSecurityConfig() // 基础过滤(推荐)
dd.DefaultSecureConfig() // 完整过滤
dd.HealthcareConfig() // HIPAA 合规
dd.FinancialConfig() // PCI-DSS 合规
dd.GovernmentConfig() // 政府标准生命周期
go
logger.Flush() // 刷新缓冲
logger.Close() // 关闭日志记录器
logger.Shutdown(ctx) // 优雅关闭(带超时)
dd.SetDefault(logger) // 替换全局日志记录器
dd.InitDefault(cfg) // 初始化全局日志记录器调试输出
go
// 通过全局 Logger(受安全过滤)
dd.Print("值:", val) // 快速打印
dd.Printf("格式: %v", val) // 格式化打印
// 直接输出(无安全过滤,仅用于调试)
dd.JSON(data) // JSON 格式调试输出
dd.Text(data) // 文本格式调试输出
dd.Exit(data) // 输出后退出