geck-go/logging/init.go

38 lines
916 B
Go

package logging
import (
"os"
"time"
"github.com/getsentry/sentry-go"
"github.com/rs/zerolog"
"github.com/rs/zerolog/log"
)
var levelsMapping = map[zerolog.Level]sentry.Level{
zerolog.DebugLevel: sentry.LevelDebug,
zerolog.InfoLevel: sentry.LevelInfo,
zerolog.WarnLevel: sentry.LevelWarning,
zerolog.ErrorLevel: sentry.LevelError,
zerolog.FatalLevel: sentry.LevelFatal,
zerolog.PanicLevel: sentry.LevelFatal,
}
// Initialize configures ZeroLog with defaults.
func Initialize() {
cw := zerolog.NewConsoleWriter()
cw.Out = os.Stderr
cw.TimeFormat = "15:04:05"
log.Logger = zerolog.New(cw).With().Timestamp().Logger()
zerolog.DurationFieldUnit = time.Millisecond
}
// SetGlobalLevel sets the global log level according to the passed debug flag.
func SetGlobalLevel(debug bool) {
if debug {
zerolog.SetGlobalLevel(zerolog.DebugLevel)
} else {
zerolog.SetGlobalLevel(zerolog.InfoLevel)
}
}