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)
 | 
						|
} |