refactor: remove zap log package Close #19
parent
32d479c7a0
commit
aab3aafad7
@ -1,120 +1,103 @@ |
|||||||
package log |
package log |
||||||
|
|
||||||
import ( |
import ( |
||||||
|
"fmt" |
||||||
|
"io" |
||||||
|
"log" |
||||||
"os" |
"os" |
||||||
"strings" |
|
||||||
|
|
||||||
"go.uber.org/zap" |
|
||||||
"go.uber.org/zap/zapcore" |
|
||||||
) |
) |
||||||
|
|
||||||
const ( |
const ( |
||||||
Prefix = "[x]: " |
Prefix = "[x]: " |
||||||
) |
) |
||||||
|
|
||||||
var ( |
type Level int |
||||||
formatLogger *zap.SugaredLogger |
|
||||||
levelMap = map[string]zapcore.Level{ |
|
||||||
"debug": zapcore.DebugLevel, |
|
||||||
"info": zapcore.InfoLevel, |
|
||||||
"warn": zapcore.WarnLevel, |
|
||||||
"error": zapcore.ErrorLevel, |
|
||||||
"panic": zapcore.PanicLevel, |
|
||||||
"fatal": zapcore.FatalLevel, |
|
||||||
} |
|
||||||
) |
|
||||||
|
|
||||||
func InitLog(level string) { |
|
||||||
logger := newLogger(level) |
|
||||||
formatLogger = logger.Sugar() |
|
||||||
} |
|
||||||
|
|
||||||
func newLogger(level string) *zap.Logger { |
const ( |
||||||
core := newCore(level) |
LevelDebug Level = iota |
||||||
return zap.New(core, |
LevelWarn |
||||||
zap.AddCaller(), |
LevelError |
||||||
zap.AddCallerSkip(1), |
) |
||||||
zap.Development(), |
|
||||||
) |
|
||||||
} |
|
||||||
|
|
||||||
func newCore(level string) zapcore.Core { |
func (l Level) String() string { |
||||||
encoderConfig := zapcore.EncoderConfig{ |
switch l { |
||||||
TimeKey: "time", |
case LevelDebug: |
||||||
LevelKey: "level", |
return "debug" |
||||||
NameKey: "logger", |
case LevelError: |
||||||
CallerKey: "line", |
return "error" |
||||||
MessageKey: "msg", |
|
||||||
StacktraceKey: "stacktrace", |
|
||||||
LineEnding: zapcore.DefaultLineEnding, |
|
||||||
EncodeLevel: zapcore.CapitalLevelEncoder, |
|
||||||
EncodeTime: zapcore.ISO8601TimeEncoder, |
|
||||||
EncodeDuration: zapcore.SecondsDurationEncoder, |
|
||||||
EncodeCaller: zapcore.ShortCallerEncoder, |
|
||||||
EncodeName: zapcore.FullNameEncoder, |
|
||||||
} |
} |
||||||
return zapcore.NewCore( |
return "" |
||||||
zapcore.NewConsoleEncoder(encoderConfig), |
|
||||||
zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout)), |
|
||||||
zap.NewAtomicLevelAt(getLoggerLevel(level)), |
|
||||||
) |
|
||||||
} |
} |
||||||
|
|
||||||
func getLoggerLevel(lvl string) zapcore.Level { |
var ( |
||||||
if level, ok := levelMap[strings.ToLower(lvl)]; ok { |
formatLogger *Logger |
||||||
return level |
levelMap = map[string]Level{ |
||||||
|
"debug": LevelDebug, |
||||||
|
"error": LevelError, |
||||||
} |
} |
||||||
return zapcore.InfoLevel |
) |
||||||
} |
|
||||||
|
|
||||||
func Debug(args ...interface{}) { |
func InitLog(l string) { |
||||||
formatLogger.Debug(args...) |
formatLogger = newLog(os.Stdout).setLevel(levelMap[l]).setFlags(log.Lshortfile) |
||||||
} |
} |
||||||
|
|
||||||
func Debugf(template string, args ...interface{}) { |
type Logger struct { |
||||||
formatLogger.Debugf(template, args...) |
level Level |
||||||
|
l *log.Logger |
||||||
} |
} |
||||||
|
|
||||||
func Info(args ...interface{}) { |
func newLog(w io.Writer) *Logger { |
||||||
formatLogger.Info(args...) |
return &Logger{ |
||||||
|
l: log.New(w, "", 0), |
||||||
|
} |
||||||
} |
} |
||||||
|
|
||||||
func Infof(template string, args ...interface{}) { |
func (l *Logger) setFlags(flag int) *Logger { |
||||||
formatLogger.Infof(template, args...) |
l.l.SetFlags(flag) |
||||||
|
return l |
||||||
} |
} |
||||||
|
|
||||||
func Warn(args ...interface{}) { |
func (l *Logger) setLevel(level Level) *Logger { |
||||||
formatLogger.Warn(args...) |
l.level = level |
||||||
|
return l |
||||||
} |
} |
||||||
|
|
||||||
func Warnf(template string, args ...interface{}) { |
func (l *Logger) doLog(level Level, v ...interface{}) bool { |
||||||
formatLogger.Warnf(template, args...) |
if level < l.level { |
||||||
|
return false |
||||||
|
} |
||||||
|
l.l.Output(3, level.String()+" "+fmt.Sprintln(v...)) |
||||||
|
return true |
||||||
} |
} |
||||||
|
|
||||||
func Error(args ...interface{}) { |
func (l *Logger) doLogf(level Level, format string, v ...interface{}) bool { |
||||||
formatLogger.Error(args...) |
if level < l.level { |
||||||
|
return false |
||||||
|
} |
||||||
|
l.l.Output(3, level.String()+" "+fmt.Sprintln(fmt.Sprintf(format, v...))) |
||||||
|
return true |
||||||
} |
} |
||||||
|
|
||||||
func Errorf(template string, args ...interface{}) { |
func Debug(v ...interface{}) { |
||||||
formatLogger.Errorf(template, args...) |
formatLogger.doLog(LevelDebug, v...) |
||||||
} |
} |
||||||
|
|
||||||
func Panic(args ...interface{}) { |
func Warn(v ...interface{}) { |
||||||
formatLogger.Panic(args...) |
formatLogger.doLog(LevelWarn, v...) |
||||||
} |
} |
||||||
|
|
||||||
func Panicf(template string, args ...interface{}) { |
func Error(v ...interface{}) { |
||||||
formatLogger.Panicf(template, args...) |
formatLogger.doLog(LevelError, v...) |
||||||
} |
} |
||||||
|
|
||||||
func Fatal(args ...interface{}) { |
func Errorf(format string, v ...interface{}) { |
||||||
formatLogger.Fatal(args...) |
formatLogger.doLogf(LevelError, format, v...) |
||||||
} |
} |
||||||
|
|
||||||
func Fatalf(template string, args ...interface{}) { |
func Warnf(format string, v ...interface{}) { |
||||||
formatLogger.Fatalf(template, args...) |
formatLogger.doLogf(LevelWarn, format, v...) |
||||||
} |
} |
||||||
|
|
||||||
func Println(args ...interface{}) { |
func Debugf(format string, v ...interface{}) { |
||||||
formatLogger.Debug(args...) |
formatLogger.doLogf(LevelDebug, format, v...) |
||||||
} |
} |
||||||
|
Loading…
Reference in new issue