GetFileLogger returns a logger instance for the specified filename
(filename string)
| 38 | |
| 39 | // GetFileLogger returns a logger instance for the specified filename |
| 40 | func GetFileLogger(filename string) Logger { |
| 41 | filename = strings.TrimSpace(filename) |
| 42 | |
| 43 | logsMutex.Lock() |
| 44 | defer logsMutex.Unlock() |
| 45 | |
| 46 | log := logs[filename] |
| 47 | if log == nil { |
| 48 | newLogger := &fileLogger{ |
| 49 | logger: logrus.New(), |
| 50 | m: &sync.Mutex{}, |
| 51 | } |
| 52 | newLogger.logger.Formatter = &logrus.JSONFormatter{} |
| 53 | newLogger.logger.SetOutput(&lumberjack.Logger{ |
| 54 | Filename: Logdir + filename + ".log", |
| 55 | MaxAge: 12, |
| 56 | MaxBackups: 4, |
| 57 | MaxSize: 10 * 1024 * 1024, |
| 58 | }) |
| 59 | |
| 60 | newLogger.SetLevel(GetInstance().GetLevel()) |
| 61 | logs[filename] = newLogger |
| 62 | } |
| 63 | |
| 64 | return logs[filename] |
| 65 | } |
| 66 | |
| 67 | // OverrideRuntimeErrorHandler overrides the standard runtime error handler that logs to stdout |
| 68 | // with a file logger that logs all runtime.HandleErrors to errors.log |
no test coverage detected