go - 指向特定日志级别的 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。但我觉得应该有更好的方法来做到这一点。
解决方案
我知道它可以通过新包来完成,该包将实现 mqtt.Logger,其中的函数将在内部调用 log.Error。但我觉得应该有更好的方法来做到这一点。
它不必在新包中,您只需定义一个结构并使其mqtt.Logger
在同一个包中实现。
恐怕没有更好的办法了
推荐阅读
- javascript - 将循环中的 php 数据导出到 CSV 文件
- python - LoadLibrary:pyinstaller:格式化消息W失败
- java - 构建“springSecurityFilterChain”时出现“AlreadyBuiltException:该对象已构建”
- php - 在没有会话 PHP 的情况下跨页面存储变量
- omnet++ - 将 OMNET++ 输出写入文本文件
- ios - 在 UISplitViewController 中,如何为 iPhone 制作主打开详细视图控制器?
- javascript - if else 语句中的一行有什么问题
- c# - 合并 2 个具有共同部分的 Url
- python - 变异和重新分配列表( _list = 和 _list[:] = )之间的 Python 区别
- mysql - VS 2017 MySql.Data 清单与程序集引用不匹配