hub/internal/util/logger.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
}