Я использую библиотеку MQTT paho, у которой есть собственный интерфейс регистратора, реализованный logrus logger, библиотека paho имеет несколько уровней: ERROR, CRITICAL и так далее. Я пытался сделать что-то вроде этого:
MQTT.ERROR = app.Log.WithField("level","ERROR")
MQTT.CRITICAL = app.Log.WithField("level","CRITICAL")
но это не регистрируется, потому что у вас не может быть поля с именем level, и если вы не добавите уровень, он всегда переходит на информационный уровень, потому что entry.Print - это реализация, которая делает log.Info внутри, есть ли способ передать указатель в logrus logger с соответствующим уровнем лога, не создавая вокруг него новую оболочку.
Я знаю, что это можно сделать с помощью нового пакета, который будет реализовывать mqtt.Logger с функциями, внутри которых будут вызовы log.Error. Но я чувствую, что должен быть немного лучший способ сделать это.