package observability import ( "os" "strings" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) // InitLogger initializes the global logger func InitLogger(level string) { // Set up zerolog with human-friendly console output output := zerolog.ConsoleWriter{ Out: os.Stdout, TimeFormat: time.RFC3339, } log.Logger = zerolog.New(output). With(). Timestamp(). Caller(). Logger() // Set log level switch strings.ToLower(level) { case "debug": zerolog.SetGlobalLevel(zerolog.DebugLevel) case "info": zerolog.SetGlobalLevel(zerolog.InfoLevel) case "warn": zerolog.SetGlobalLevel(zerolog.WarnLevel) case "error": zerolog.SetGlobalLevel(zerolog.ErrorLevel) default: zerolog.SetGlobalLevel(zerolog.InfoLevel) } }