32 lines
618 B
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() }
|