yetzap
is a wrapper package for uber's zap logger while implementing the yetlog interface.
It only supports a small subset of the zap logger but it should be good enough for most cases.
go get -u github.com/pvormste/yetzap
env := yetenv.Develop
zaplogger, err := yetzap.NewDefaultSugaredLogger(env, "info")
if err != nil {
// handle error
}
zaplogger.Info("started server", "port", 8080)
You can use an already existing zap logger:
var sugaredLogger *zap.SugaredLogger
// Create your logger
yetlogger := yetzap.WrapSugaredLogger(sugaredLogger)
Or you can provide a ConfigureSugaredFunc
to the NewCustomSugaredLogger()
function.
Example:
func MyLoggerConstructor(rawMinLevel string) (yetlog.Logger, error) {
return NewCustomSugaredLogger(func() (*zap.SugaredLogger, error) {
minLevel := zapcore.InfoLevel
if err := minLevel.Set(strings.ToLower(rawMinLevel)); err != nil {
return nil, err
}
loggerConf := DefaultDevelopmentConfig(minLevel)
logger, err := loggerConf.Build()
if err != nil {
return nil, err
}
return logger.Sugar(), nil
})
}