Shared Go utilities for Penguin Tech applications.
go get github.com/penguintechinc/penguin-libs/packages/go-commonpackage main
import (
"github.com/penguintechinc/penguin-libs/packages/go-common/logging"
"go.uber.org/zap"
)
func main() {
log, err := logging.NewSanitizedLogger("MyService")
if err != nil {
panic(err)
}
defer log.Sync()
// Automatically sanitizes sensitive data
log.Info("User login attempt",
zap.String("email", "user@example.com"), // Logs as: [email]@example.com
zap.String("password", "secret123"), // Logs as: [REDACTED]
zap.Bool("remember_me", true), // Logs as-is
)
}The following are automatically redacted:
- Passwords, secrets, tokens
- API keys, auth tokens
- MFA/TOTP codes
- Session IDs, cookies
- Full email addresses (only domain is logged)
import "github.com/penguintechinc/penguin-libs/packages/go-common/logging"
// Sanitize individual values
value := logging.SanitizeValue("password", "secret123")
// Returns: "[REDACTED]"
// Sanitize zap fields
fields := []zap.Field{
zap.String("email", "user@example.com"),
zap.String("token", "abc123"),
}
sanitized := logging.SanitizeFields(fields)AGPL-3.0 - See LICENSE for details.