You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
101 lines
2.1 KiB
101 lines
2.1 KiB
package logger
|
|
|
|
import (
|
|
"go.uber.org/zap"
|
|
"go.uber.org/zap/zapcore"
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
|
"os"
|
|
"time"
|
|
)
|
|
|
|
var Sugar *zap.SugaredLogger
|
|
var logger *zap.Logger
|
|
|
|
func init() {
|
|
InitZap()
|
|
}
|
|
func InitZap() {
|
|
w := zapcore.AddSync(&lumberjack.Logger{
|
|
Filename: "log/hdzj.log",
|
|
MaxSize: 50, // megabytes
|
|
MaxBackups: 3,
|
|
MaxAge: 7, // days
|
|
})
|
|
core := zapcore.NewCore(
|
|
zapcore.NewConsoleEncoder(NewEncoderConfig()),
|
|
zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), w),
|
|
zap.DebugLevel)
|
|
logger = zap.New(core, zap.AddCaller())
|
|
Sugar = logger.Sugar()
|
|
}
|
|
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 TimeEncoder(t time.Time, enc zapcore.PrimitiveArrayEncoder) {
|
|
enc.AppendString(t.Format("2006-01-02 15:04:05.000"))
|
|
}
|
|
|
|
func level(level string) zapcore.Level {
|
|
switch level {
|
|
case "info":
|
|
return zap.InfoLevel
|
|
case "fatal":
|
|
return zap.FatalLevel
|
|
case "panic":
|
|
return zap.PanicLevel
|
|
case "error":
|
|
return zap.ErrorLevel
|
|
case "dpanic":
|
|
return zap.DPanicLevel
|
|
case "warn":
|
|
return zap.WarnLevel
|
|
default:
|
|
return zap.DebugLevel
|
|
}
|
|
}
|
|
|
|
func Info(msg string, fields ...zap.Field) {
|
|
logger.Info(msg, fields...)
|
|
}
|
|
|
|
func Debug(msg string, fields ...zap.Field) {
|
|
logger.Debug(msg, fields...)
|
|
}
|
|
|
|
func Panic(msg string, fields ...zap.Field) {
|
|
logger.Debug(msg, fields...)
|
|
}
|
|
|
|
func Warn(msg string, fields ...zap.Field) {
|
|
logger.Warn(msg, fields...)
|
|
}
|
|
|
|
func DPanic(msg string, fields ...zap.Field) {
|
|
logger.DPanic(msg, fields...)
|
|
}
|
|
|
|
func Error(msg string, fields ...zap.Field) {
|
|
logger.Error(msg, fields...)
|
|
}
|
|
|
|
func With(fields ...zap.Field) {
|
|
logger.With(fields...)
|
|
}
|
|
|
|
func WithOptions(opts ...zap.Option) {
|
|
logger.WithOptions(opts...)
|
|
}
|