33 lines
668 B
Go
33 lines
668 B
Go
package logger
|
|
|
|
import (
|
|
"os"
|
|
"time"
|
|
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
)
|
|
|
|
type Config struct {
|
|
Level string `default:"error" envconfig:"LOGGER_LEVEL"`
|
|
PrettyConsole bool `default:"false" envconfig:"LOGGER_PRETTY_CONSOLE"`
|
|
}
|
|
|
|
func Init(c Config) {
|
|
zerolog.TimeFieldFormat = time.RFC3339
|
|
zerolog.SetGlobalLevel(zerolog.InfoLevel)
|
|
|
|
level, err := zerolog.ParseLevel(c.Level)
|
|
if err != nil {
|
|
zerolog.SetGlobalLevel(level)
|
|
}
|
|
|
|
log.Logger = log.With().Logger()
|
|
|
|
if c.PrettyConsole {
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: "15:04:05"})
|
|
}
|
|
|
|
log.Info().Msg("Logger initialized")
|
|
}
|