DD
DD(Data-Driven Debugger)是 CyberGo 组织推出的高性能结构化日志库,提供线程安全的日志记录、灵活的输出目标配置和全面的安全防护。
特性
- 结构化日志 -- 支持类型安全的字段记录,自动 JSON 序列化
- 多输出目标 -- 同时输出到控制台、文件、自定义
io.Writer - 文件轮换 -- 按大小自动轮换,支持备份数量限制和时间保留策略
- 敏感数据过滤 -- 内置正则模式,自动脱敏密码、密钥、Token 等敏感信息
- 审计日志 -- 异步审计事件记录,支持完整性签名和链式验证
- 钩子系统 -- BeforeLog、AfterLog、OnRotate 等生命周期钩子
- 上下文集成 -- 支持 TraceID、SpanID、RequestID 的自动传播
- 日志采样 -- 高吞吐场景下可选的日志采样策略
- 零分配优化 -- 热路径最小化内存分配,性能卓越
安装
bash
go get github.com/cybergodev/dd快速开始
go
package main
import (
"time"
"github.com/cybergodev/dd"
)
func main() {
// 使用默认日志记录器
dd.Info("服务启动")
// 结构化日志
dd.InfoWith("请求处理完成",
dd.String("method", "GET"),
dd.Int("status", 200),
dd.Duration("elapsed", 150*time.Millisecond),
)
// 创建自定义日志记录器
logger, _ := dd.New(dd.DefaultConfig())
defer logger.Close()
logger.Info("自定义日志记录器已创建")
}模块导航
| 模块 | 说明 |
|---|---|
| 核心概念 | Logger 体系、处理管道、接口层次 |
| 结构化日志 | 字段构造器、链式调用 |
| 文件输出与轮换 | FileWriter、BufferedWriter |
| 敏感数据过滤 | 自动脱敏、安全等级 |
| 审计日志 | 异步审计事件、完整性签名 |
| 钩子系统 | 生命周期钩子扩展 |