0

我正在使用 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。但我觉得应该有更好的方法来做到这一点。

4

1 回答 1

0

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

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

恐怕没有更好的办法了

于 2021-05-19T09:25:46.247 回答