/
logger.go
61 lines (53 loc) · 1.2 KB
/
logger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
)
var (
logger *zap.Logger
sugar *zap.SugaredLogger
)
func Init(filePath string, isDebug bool) error {
w := zapcore.AddSync(&lumberjack.Logger{
Filename: filePath, // ⽇志⽂件路径
MaxSize: 4096, // megabytes
MaxBackups: 3, // 最多保留3个备份
MaxAge: 7, //days
Compress: true, // 是否压缩 disabled by default
})
var level zapcore.Level
if isDebug {
level = zap.DebugLevel
} else {
level = zap.InfoLevel
}
encoderConfig := zap.NewProductionEncoderConfig()
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
core := zapcore.NewCore(
zapcore.NewConsoleEncoder(encoderConfig),
w,
level,
)
logger := zap.New(core)
sugar = logger.Sugar()
return nil
}
func Close() (err error) {
if logger != nil {
return logger.Sync()
}
return
}
func Debug(format string, v ...interface{}) {
sugar.Debugf(format, v...)
}
func Info(format string, v ...interface{}) {
sugar.Infof(format, v...)
}
func Warn(format string, v ...interface{}) {
sugar.Warnf(format, v...)
}
func Error(format string, v ...interface{}) {
sugar.Errorf(format, v...)
}