首页 > 解决方案 > 指向特定日志级别的 Logrus 记录器指针

问题描述

我正在使用 MQTT paho 库,它有自己的记录器接口,由 logrus 记录器实现,paho 库有多个级别:ERROR、CRITICAL 等。我试图做这样的事情:

    MQTT.ERROR = app.Log.WithField("level","ERROR")
    MQTT.CRITICAL = app.Log.WithField("level","CRITICAL")

但这不会记录,因为你不能有一个名为 level 的字段,如果你不添加 level,它总是进入 info 级别,因为 entry.Print 是在里面做 log.Info 的实现,有没有办法传递一个指针到具有相应日志级别的 logrus 记录器,而无需围绕它创建新的包装器。

我知道它可以通过新包来完成,该包将实现 mqtt.Logger,其中的函数将在内部调用 log.Error。但我觉得应该有更好的方法来做到这一点。

标签: gologrus

解决方案


我知道它可以通过新包来完成,该包将实现 mqtt.Logger,其中的函数将在内部调用 log.Error。但我觉得应该有更好的方法来做到这一点。

它不必在新包中,您只需定义一个结构并使其mqtt.Logger在同一个包中实现。

恐怕没有更好的办法了


推荐阅读