29 lines
739 B
Go
29 lines
739 B
Go
package logger
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
func New(environment, service string) (*zap.Logger, error) {
|
|
var cfg zap.Config
|
|
if strings.EqualFold(environment, "prod") || strings.EqualFold(environment, "production") {
|
|
cfg = zap.NewProductionConfig()
|
|
cfg.EncoderConfig.TimeKey = "time"
|
|
cfg.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
|
} else {
|
|
cfg = zap.NewDevelopmentConfig()
|
|
cfg.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder
|
|
}
|
|
cfg.OutputPaths = []string{"stdout"}
|
|
cfg.ErrorOutputPaths = []string{"stderr"}
|
|
|
|
log, err := cfg.Build()
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return log.With(zap.String("service", service), zap.String("env", environment)), nil
|
|
}
|