【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":"****"}