# README
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
})
}
# Functions
DefaultDevelopmentConfig returns the default development config which is used to create a default sugared logger.
DefaultProductionConfig returns the default production config which is used to create a default sugared logger.
NewCustomSugaredLogger can be used to create a custom sugared logger by providing a ConfigureSugaredFunc function.
NewDefaultSugaredLogger creates a new sugared logger with some default configurations for different environments.
WrapSugaredLogger wraps an existent sugared logger without needing to touch any configuration.
# Structs
SugaredLogger is the wrapper for the actual sugared logger.
# Type aliases
ConfigureSugaredFunc defines a function which can be used to configure a sugared logger.