44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package logger
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
)
|
|
|
|
var log *zap.SugaredLogger
|
|
|
|
func Init(level string) error {
|
|
var zapLevel zapcore.Level
|
|
if err := zapLevel.UnmarshalText([]byte(level)); err != nil {
|
|
zapLevel = zapcore.InfoLevel
|
|
}
|
|
|
|
cfg := zap.Config{
|
|
Level: zap.NewAtomicLevelAt(zapLevel),
|
|
Encoding: "console",
|
|
EncoderConfig: zap.NewDevelopmentEncoderConfig(),
|
|
OutputPaths: []string{"stdout"},
|
|
ErrorOutputPaths: []string{"stderr"},
|
|
}
|
|
|
|
l, err := cfg.Build(zap.AddCallerSkip(1))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
log = l.Sugar()
|
|
return nil
|
|
}
|
|
|
|
func Info(msg string, keysAndValues ...interface{}) { log.Infow(msg, keysAndValues...) }
|
|
func Warn(msg string, keysAndValues ...interface{}) { log.Warnw(msg, keysAndValues...) }
|
|
func Error(msg string, keysAndValues ...interface{}) { log.Errorw(msg, keysAndValues...) }
|
|
func Debug(msg string, keysAndValues ...interface{}) { log.Debugw(msg, keysAndValues...) }
|
|
func Fatal(msg string, keysAndValues ...interface{}) { log.Fatalw(msg, keysAndValues...) }
|
|
|
|
func Sync() {
|
|
if log != nil {
|
|
_ = log.Sync()
|
|
}
|
|
}
|