37 lines
772 B
Go
37 lines
772 B
Go
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")
|
|
}
|