34 lines
781 B
Go
34 lines
781 B
Go
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)
|
|
} |