(level, filename string, maxBackups, maxAge, maxSize int, compress bool)
| 66 | } |
| 67 | |
| 68 | func InitLoggerRotate(level, filename string, maxBackups, maxAge, maxSize int, compress bool) error { |
| 69 | // if file path is empty, use default zapLogger, print in console |
| 70 | if len(filename) == 0 { |
| 71 | return nil |
| 72 | } |
| 73 | if level != "info" && level != "warn" && level != "error" { |
| 74 | return fmt.Errorf("log level must be one of info,warn,error") |
| 75 | } |
| 76 | if maxBackups > 100 || maxBackups < 10 { |
| 77 | return fmt.Errorf("log max_backups must be between 10 and 100") |
| 78 | } |
| 79 | if maxAge > 30 || maxAge < 1 { |
| 80 | return fmt.Errorf("log max_age must be between 1 and 30") |
| 81 | } |
| 82 | if maxSize > 500 || maxSize < 100 { |
| 83 | return fmt.Errorf("log max_size must be between 100 and 500") |
| 84 | } |
| 85 | |
| 86 | var l = new(zapcore.Level) |
| 87 | if err := l.UnmarshalText([]byte(level)); err != nil { |
| 88 | return err |
| 89 | } |
| 90 | encoder := getEncoder() |
| 91 | writeSync, err := getWriteSyncer(filename, maxBackups, maxAge, maxSize, compress) |
| 92 | if err != nil { |
| 93 | return err |
| 94 | } |
| 95 | core := zapcore.NewCore(encoder, writeSync, l) |
| 96 | rotateLogger := zap.New(core, zap.AddCaller()) |
| 97 | zapLogger = rotateLogger |
| 98 | |
| 99 | return nil |
| 100 | } |
| 101 | |
| 102 | func Sync() { |
| 103 | if zapLogger != nil { |
no test coverage detected