【发布时间】:2023-03-21 10:42:01
【问题描述】:
我正在使用 MQTT paho 库,它有自己的 logger 接口,由 logrus logger 实现,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 的函数。但我觉得应该有更好的方法来做到这一点。
【问题讨论】:
-
这听起来像是 XY 问题。您要达到的最终目标是什么?