如何检查通过logrus生成的日志,以获得计数。 错误和警告

I wanted to a way through which we could keep the count of no. of errors and warnings that have occurred in logrus logs.

I want to use a struct to keep count of the errors and warnings,

    type ErrorsAndWarnings struct{
        Errors int
        Warnings int
    }

You can use hooks in logrus. Hook will be called each time an log will be called for a level.

// You can make Errors and Warnings as atomic integers or probably 
// use locks to make it thread safe
type ErrorsAndWarnings struct{
        Errors int
        Warnings int
}

var (
    levels = []logrus.Level{logrus.WarnLevel, logrus.ErrorLevel}
)

func (h *ErrorsAndWarnings) Levels() []logrus.Level {
    return levels
}

func (h *ErrorsAndWarnings) Fire(entry *logrus.Entry) error {
    if entry.Level == logrus.ErrorLevel{
      h.Errors++
    }else if entry.Level == logrus.WarnLevel{
       h.Warnings++
    }
    return nil
}