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 |
| 민감 데이터 필터링 | 자동 마스킹, 보안 등급 |
| 감사 로그 | 비동기 감사 이벤트, 무결성 서명 |
| 훅 시스템 | 라이프사이클 훅 확장 |