DD
DD (Data-Driven Debugger) — высокопроизводительная библиотека структурированного логирования от организации CyberGo, обеспечивающая потокобезопасную запись логов, гибкую настройку целей вывода и комплексную защиту безопасности.
Возможности
- Структурированное логирование -- типобезопасная запись полей, автоматическая JSON-сериализация
- Множественные цели вывода -- одновременный вывод в консоль, файл, пользовательский
io.Writer - Ротация файлов -- автоматическая ротация по размеру с ограничением количества резервных копий и политикой хранения по времени
- Фильтрация конфиденциальных данных -- встроенные regex-шаблоны, автоматическое маскирование паролей, ключей, токенов и другой чувствительной информации
- Аудитные логи -- асинхронная запись аудитных событий с поддержкой подписей целостности и цепочной проверкой
- Система хуков -- хуки жизненного цикла 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 |
| Фильтрация конфиденциальных данных | Автоматическое маскирование, уровни безопасности |
| Аудитные логи | Асинхронные аудитные события, подписи целостности |
| Система хуков | Расширение через хуки жизненного цикла |
Следующие шаги
- Быстрый старт -- руководство для начала работы за 5 минут
- Основные концепции -- понимание архитектуры DD
- Руководство по миграции -- миграция с log/slog/zap/logrus
- Шпаргалка -- краткий справочник по API
- Справочник API -- полная документация API
- Базовые примеры -- практические примеры кода