mirror of https://github.com/artifacthub/hub.git
30 lines
663 B
Go
30 lines
663 B
Go
package util
|
|
|
|
import (
|
|
"os"
|
|
|
|
"github.com/rs/zerolog"
|
|
"github.com/rs/zerolog/log"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// SetupLogger configures the global logger using the configuration provided.
|
|
func SetupLogger(cfg *viper.Viper, fields map[string]interface{}) error {
|
|
// Add some context to global logger
|
|
log.Logger = log.With().Fields(fields).Logger()
|
|
|
|
// Set log level
|
|
level, err := zerolog.ParseLevel(cfg.GetString("log.level"))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
zerolog.SetGlobalLevel(level)
|
|
|
|
// Enable pretty logging (not JSON) if requested
|
|
if cfg.GetBool("log.pretty") {
|
|
log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr})
|
|
}
|
|
|
|
return nil
|
|
}
|