third-platform-sdk/sdk/dunion-go-sdk/util/log.go
2024-05-13 23:18:54 +08:00

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)
}