Keito

© 2024 Keito

技術ブログとポートフォリオ

【Go】zapで機密情報をマスキングするサンプルコード

更新日2025/5/24/(土) 05:29
タグ
Go

概要

  • uber-go/zapを使用してパスワードの文字列をマスキングする処理のサンプルコード

サンプルコード

  • マスキングなし
func execNoMasking() { logger, _ := zap.NewProduction() defer logger.Sync() password := "secret123" logger.Info("user login", zap.String("username", "alice"), zap.String("password", password), // これだと機密情報が丸見えに ) } // 出力されるログ {"level":"info","ts":1748063559.381116,"caller":"zap/masking.go:13","msg":"user login","username":"alice","password":"secret123"}
  • マスキングあり
func maskSecret(_ string) string { return "****" } func execMasking() { logger, _ := zap.NewProduction() defer logger.Sync() username := "alice" password := "secret123" logger.Info("user login", zap.String("username", username), zap.String("password", maskSecret(password)), // ここでマスク ) } // 出力 {"level":"info","ts":1748063559.381233,"caller":"zap/masking.go:31","msg":"user login","username":"alice","password":"****"}