StreamBox/pkg/logger/logger.go

32 lines
618 B
Go

package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
var Log *zap.Logger
var Sugar *zap.SugaredLogger
func Init(level, encoding string) error {
cfg := zap.NewProductionConfig()
if encoding == "console" {
cfg.Encoding = "console"
cfg.EncoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
} else {
cfg.Encoding = "json"
}
if lvl, err := zapcore.ParseLevel(level); err == nil {
cfg.Level = zap.NewAtomicLevelAt(lvl)
}
l, err := cfg.Build(zap.AddCaller(), zap.AddCallerSkip(1))
if err != nil {
return err
}
Log = l
Sugar = l.Sugar()
return nil
}
func Sync() { _ = Log.Sync() }