package main
import (
"github.com/sirupsen/logrus"
"os"
)
func main() {
// Initialize logrus logger
logger := logrus.New()
// Set output to standard out
logger.SetOutput(os.Stdout)
// Set log level
logger.SetLevel(logrus.InfoLevel)
// Example sensitive data
sensitiveInfo := "user@example.com"
maskedInfo := maskSensitiveData(sensitiveInfo)
// Log masked data
logger.WithFields(logrus.Fields{
"sensitive": maskedInfo,
}).Info("User logged in")
// Log original data for debugging (Make sure to remove or protect this in production)
logger.Debug("Original sensitive data: ", sensitiveInfo)
}
// maskSensitiveData masks the sensitive information
func maskSensitiveData(info string) string {
// Simple masking implementation
return "****@" + info[strings.LastIndex(info, "@"):]
}
How do I avoid rehashing overhead with std::set in multithreaded code?
How do I find elements with custom comparators with std::set for embedded targets?
How do I erase elements while iterating with std::set for embedded targets?
How do I provide stable iteration order with std::unordered_map for large datasets?
How do I reserve capacity ahead of time with std::unordered_map for large datasets?
How do I erase elements while iterating with std::unordered_map in multithreaded code?
How do I provide stable iteration order with std::map for embedded targets?
How do I provide stable iteration order with std::map in multithreaded code?
How do I avoid rehashing overhead with std::map in performance-sensitive code?
How do I merge two containers efficiently with std::map for embedded targets?