package gologger import ( "io" "os" "sync" "time" "github.com/rs/zerolog" ) var once sync.Once func Get(c string, l string) zerolog.Logger { var log zerolog.Logger once.Do(func() { zerolog.TimeFieldFormat = time.RFC3339Nano var output io.Writer = zerolog.ConsoleWriter{ Out: os.Stdout, TimeFormat: time.RFC3339, } level, err := zerolog.ParseLevel(l) if err != nil { panic("unable to get parse level for logger") } log := zerolog.New(output). Level(zerolog.Level(level)). With(). Str("context", c). Timestamp(). Logger() }) return log }