package core import ( "mtp20_assisted/global" "os" "path" "time" rotatelogs "github.com/lestrrat-go/file-rotatelogs" "go.uber.org/zap/zapcore" ) var FileRotatelogs = new(fileRotatelogs) type fileRotatelogs struct{} // GetWriteSyncer 获取 zapcore.WriteSyncer func (r *fileRotatelogs) GetWriteSyncer(level string) (zapcore.WriteSyncer, error) { fileWriter, err := rotatelogs.New( path.Join(global.M2A_CONFIG.Zap.Director, "%Y-%m-%d", level+".log"), rotatelogs.WithClock(rotatelogs.Local), rotatelogs.WithMaxAge(time.Duration(global.M2A_CONFIG.Zap.MaxAge)*24*time.Hour), // 日志留存时间 rotatelogs.WithRotationTime(time.Hour*24), ) if global.M2A_CONFIG.Zap.LogInConsole { return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(fileWriter)), err } return zapcore.AddSync(fileWriter), err }