package logger import ( "os" "time" "github.com/rs/zerolog" ) var Log zerolog.Logger func init() { output := os.Stderr logFormat := os.Getenv("LOG_FORMAT") if logFormat == "json" { Log = zerolog.New(output).With().Timestamp().Logger() } else { Log = zerolog.New(zerolog.ConsoleWriter{ Out: output, TimeFormat: time.RFC3339, }).With().Timestamp().Logger() } level := os.Getenv("LOG_LEVEL") switch level { case "debug": Log = Log.Level(zerolog.DebugLevel) case "warn": Log = Log.Level(zerolog.WarnLevel) case "error": Log = Log.Level(zerolog.ErrorLevel) default: Log = Log.Level(zerolog.InfoLevel) } } func With() zerolog.Context { return Log.With() }