go - 如何检查通过 logrus 生成的日志,以获取编号。错误和警告

标签 go logging

我想要一种方法,我们可以通过这种方法来计算否。 logrus 日志中发生的错误和警告的数量。

我想使用一个结构来记录错误和警告,

    type ErrorsAndWarnings struct{
        Errors int
        Warnings int
    }

最佳答案

您可以在 logrus 中使用钩子(Hook)。每次为一个级别调用日志时都会调用钩子(Hook)。

// 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
}

关于go - 如何检查通过 logrus 生成的日志,以获取编号。错误和警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55771966/

相关文章:

django - 如何添加到 Django 的默认日志记录?

go - 如何将结构数组传递给我的结构函数

string - golang - 字符串排列 - slice 边界超出范围

sockets - 非常偶发的 Go HTTP 错误 : multiple response. WriteHeader 调用

java - 如何从日志中的日志请求中排除特定属性或数据类型?

java - 如何在 JSP 中使用 SLF4J 记录器

javascript - 处理数据流的日志记录

http - 在HTTP服务器中提供静态文件

Golang gqlgen 错误尝试将模型导入resolver.go

python - 使用 fileConfig 在 Python 中配置自定义处理程序