package logger import ( "os" "time" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) type Config struct { Level string `default:"info" envconfig:"LOGGER__LEVEL"` PrettyConsole bool `default:"false" envconfig:"LOGGER__PRETTY_CONSOLE"` } func Init(c Config) { zerolog.TimeFieldFormat = time.RFC3339 level := zerolog.InfoLevel if parsedLevel, err := zerolog.ParseLevel(c.Level); err == nil { level = parsedLevel } zerolog.SetGlobalLevel(level) log.Logger = log.With(). // Caller(). // Str("app_name", c.AppName). // Str("app_version", c.AppVersion). Logger() if c.PrettyConsole { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: "15:04:05"}) } log.Info().Msg("Logger initialized") }