Skip to content

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
機密データフィルタリング自動マスキング、セキュリティレベル
監査ログ非同期監査イベント、整合性署名
フックシステムライフサイクルフック拡張

次のステップ