package mqtt import ( "log" "strings" mqtt "github.com/eclipse/paho.mqtt.golang" "go.uber.org/zap" ) type DebugWriter struct { logger *zap.Logger } func (d *DebugWriter) Write(p []byte) (n int, err error) { message := strings.TrimSpace(string(p)) d.logger.Debug(message, zap.String("source", "mqtt-debug")) return len(p), nil } type ErrorWriter struct { logger *zap.Logger } func (e *ErrorWriter) Write(p []byte) (n int, err error) { message := strings.TrimSpace(string(p)) e.logger.Error(message, zap.String("source", "mqtt-error")) return len(p), nil } func SetupMQTTLogging(logger *zap.Logger) { mqtt.DEBUG = log.New(&DebugWriter{logger: logger}, "[MQTT] ", 0) mqtt.ERROR = log.New(&ErrorWriter{logger: logger}, "[MQTT] ", 0) }