65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package log
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
var (
|
|
zapLogger *zap.Logger
|
|
ZapLog *zap.Logger
|
|
Debug = zapLogger.Debug
|
|
Info = zapLogger.Info
|
|
Warn = zapLogger.Warn
|
|
Error = zapLogger.Error
|
|
Fatal = zapLogger.Fatal
|
|
)
|
|
|
|
func newEncoderConfig() zapcore.EncoderConfig {
|
|
return zapcore.EncoderConfig{
|
|
// Keys can be anything except the empty string.
|
|
TimeKey: "T",
|
|
LevelKey: "L",
|
|
NameKey: "N",
|
|
CallerKey: "C",
|
|
MessageKey: "M",
|
|
StacktraceKey: "S",
|
|
LineEnding: zapcore.DefaultLineEnding,
|
|
EncodeLevel: zapcore.CapitalLevelEncoder,
|
|
EncodeTime: timeEncoder,
|
|
EncodeDuration: zapcore.StringDurationEncoder,
|
|
EncodeCaller: zapcore.ShortCallerEncoder,
|
|
}
|
|
}
|
|
|
|
func init() {
|
|
core := zapcore.NewCore(
|
|
zapcore.NewConsoleEncoder(newEncoderConfig()),
|
|
zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout)),
|
|
zap.DebugLevel,
|
|
)
|
|
zapLogger = zap.New(core, zap.AddCaller())
|
|
ZapLog = zapLogger
|
|
Debug = zapLogger.Debug
|
|
Info = zapLogger.Info
|
|
Warn = zapLogger.Warn
|
|
Error = zapLogger.Error
|
|
Fatal = zapLogger.Fatal
|
|
}
|
|
|
|
func timeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
|
enc.AppendString(t.Format("2006-01-02 15:04:05"))
|
|
}
|
|
|
|
type Field = zap.Field
|
|
|
|
func Any(key string, value interface{}) Field {
|
|
return zap.Any(key, value)
|
|
}
|
|
|
|
func E(err error) Field {
|
|
return Any("err", err)
|
|
}
|