47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
|
|
package util
|
||
|
|
|
||
|
|
import (
|
||
|
|
"go.uber.org/zap"
|
||
|
|
"go.uber.org/zap/zapcore"
|
||
|
|
"gopkg.in/natefinch/lumberjack.v2"
|
||
|
|
)
|
||
|
|
|
||
|
|
type DunionLogger interface {
|
||
|
|
Infof(template string, args ...interface{})
|
||
|
|
Errorf(template string, args ...interface{})
|
||
|
|
}
|
||
|
|
|
||
|
|
// var unionLogger *zap.SugaredLogger
|
||
|
|
var unionLogger DunionLogger
|
||
|
|
|
||
|
|
func SetLogger(logger DunionLogger) {
|
||
|
|
unionLogger = logger
|
||
|
|
}
|
||
|
|
|
||
|
|
func InitLogger(logPath string) {
|
||
|
|
writeSyncer := getLogWriter(logPath)
|
||
|
|
encoder := getEncoder()
|
||
|
|
core := zapcore.NewCore(encoder, writeSyncer, zapcore.InfoLevel)
|
||
|
|
|
||
|
|
logger := zap.New(core, zap.AddCaller())
|
||
|
|
unionLogger = logger.Sugar()
|
||
|
|
}
|
||
|
|
|
||
|
|
func getEncoder() zapcore.Encoder {
|
||
|
|
encoderConfig := zap.NewProductionEncoderConfig()
|
||
|
|
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||
|
|
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||
|
|
return zapcore.NewConsoleEncoder(encoderConfig)
|
||
|
|
}
|
||
|
|
|
||
|
|
func getLogWriter(logPath string) zapcore.WriteSyncer {
|
||
|
|
lumberJackLogger := &lumberjack.Logger{
|
||
|
|
Filename: logPath,
|
||
|
|
MaxSize: 500,
|
||
|
|
MaxBackups: 5,
|
||
|
|
MaxAge: 30,
|
||
|
|
Compress: false,
|
||
|
|
}
|
||
|
|
return zapcore.AddSync(lumberJackLogger)
|
||
|
|
}
|