file_rotatelogs.go 844 B

1234567891011121314151617181920212223242526272829
  1. package core
  2. import (
  3. "mtp20_assisted/global"
  4. "os"
  5. "path"
  6. "time"
  7. rotatelogs "github.com/lestrrat-go/file-rotatelogs"
  8. "go.uber.org/zap/zapcore"
  9. )
  10. var FileRotatelogs = new(fileRotatelogs)
  11. type fileRotatelogs struct{}
  12. // GetWriteSyncer 获取 zapcore.WriteSyncer
  13. func (r *fileRotatelogs) GetWriteSyncer(level string) (zapcore.WriteSyncer, error) {
  14. fileWriter, err := rotatelogs.New(
  15. path.Join(global.M2A_CONFIG.Zap.Director, "%Y-%m-%d", level+".log"),
  16. rotatelogs.WithClock(rotatelogs.Local),
  17. rotatelogs.WithMaxAge(time.Duration(global.M2A_CONFIG.Zap.MaxAge)*24*time.Hour), // 日志留存时间
  18. rotatelogs.WithRotationTime(time.Hour*24),
  19. )
  20. if global.M2A_CONFIG.Zap.LogInConsole {
  21. return zapcore.NewMultiWriteSyncer(zapcore.AddSync(os.Stdout), zapcore.AddSync(fileWriter)), err
  22. }
  23. return zapcore.AddSync(fileWriter), err
  24. }