pcm-ai4m/core/internal/rotatelogs.go

30 lines
812 B
Go

package internal
import (
"ai4m/global"
"go.uber.org/zap/zapcore"
"gopkg.in/natefinch/lumberjack.v2"
"os"
"path"
)
type lumberjackLogs struct{}
var LumberjackLogs = new(lumberjackLogs)
// GetWriteSyncer 获取 zapcore.WriteSyncer
func (l *lumberjackLogs) GetWriteSyncer(level string) zapcore.WriteSyncer {
fileWriter := &lumberjack.Logger{
Filename: path.Join(global.PCM_CONFIG.Zap.Director, level+".log"),
MaxSize: global.PCM_CONFIG.RotateLogs.MaxSize,
MaxBackups: global.PCM_CONFIG.RotateLogs.MaxBackups,
MaxAge: global.PCM_CONFIG.RotateLogs.MaxAge,
Compress: global.PCM_CONFIG.RotateLogs.Compress,
}
if global.PCM_CONFIG.Zap.LogInConsole {
return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(fileWriter))
}
return zapcore.AddSync(fileWriter)
}