Skip to content

A wrapper package for the zap logger which implements the yetlog interface.

License

Notifications You must be signed in to change notification settings

pvormste/yetzap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoDoc

yetzap

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.

Install

go get -u github.com/pvormste/yetzap

Usage

env := yetenv.Develop
zaplogger, err := yetzap.NewDefaultSugaredLogger(env, "info")

if err != nil {
    // handle error
}

zaplogger.Info("started server", "port", 8080)

Custom zap logger instance

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
	})
}