Improve logging
This commit is contained in:
1 parent
a99e94a42c
commit
ea2bfa436a
2 files changed
+50
-9
No files matched your search
+33
-2
@@ -1,12 +1,15 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
"MQTTLogger/config"
|
"MQTTLogger/config"
|
||||||
"MQTTLogger/internal/csv"
|
"MQTTLogger/internal/csv"
|
||||||
"MQTTLogger/internal/mqtt"
|
"MQTTLogger/internal/mqtt"
|
||||||
|
|
||||||
"go.uber.org/fx"
|
"go.uber.org/fx"
|
||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
|
"go.uber.org/zap/zapcore"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
@@ -27,7 +30,21 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewLogger() (*zap.Logger, error) {
|
func NewLogger() (*zap.Logger, error) {
|
||||||
return zap.NewDevelopment()
|
logLevel := os.Getenv("LOG_LEVEL")
|
||||||
|
if logLevel == "" {
|
||||||
|
logLevel = "info"
|
||||||
|
}
|
||||||
|
|
||||||
|
var level zapcore.Level
|
||||||
|
err := level.Set(logLevel)
|
||||||
|
if err != nil {
|
||||||
|
level = zapcore.InfoLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
config := zap.NewDevelopmentConfig()
|
||||||
|
config.Level = zap.NewAtomicLevelAt(level)
|
||||||
|
|
||||||
|
return config.Build()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Simple logger for fx
|
// Simple logger for fx
|
||||||
@@ -36,7 +53,21 @@ type FXLogger struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func NewFXLogger() *FXLogger {
|
func NewFXLogger() *FXLogger {
|
||||||
logger, _ := zap.NewDevelopment()
|
logLevel := os.Getenv("LOG_LEVEL")
|
||||||
|
if logLevel == "" {
|
||||||
|
logLevel = "info"
|
||||||
|
}
|
||||||
|
|
||||||
|
var level zapcore.Level
|
||||||
|
err := level.Set(logLevel)
|
||||||
|
if err != nil {
|
||||||
|
level = zapcore.InfoLevel
|
||||||
|
}
|
||||||
|
|
||||||
|
config := zap.NewDevelopmentConfig()
|
||||||
|
config.Level = zap.NewAtomicLevelAt(level)
|
||||||
|
|
||||||
|
logger, _ := config.Build()
|
||||||
return &FXLogger{logger: logger}
|
return &FXLogger{logger: logger}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-7
@@ -8,17 +8,27 @@ import (
|
|||||||
"go.uber.org/zap"
|
"go.uber.org/zap"
|
||||||
)
|
)
|
||||||
|
|
||||||
type ZapWriter struct {
|
type DebugWriter struct {
|
||||||
sugar *zap.SugaredLogger
|
logger *zap.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
func (z *ZapWriter) Write(p []byte) (n int, err error) {
|
func (d *DebugWriter) Write(p []byte) (n int, err error) {
|
||||||
z.sugar.Debug(strings.TrimSpace(string(p)))
|
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
|
return len(p), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func SetupMQTTLogging(logger *zap.Logger) {
|
func SetupMQTTLogging(logger *zap.Logger) {
|
||||||
sugar := logger.Sugar()
|
mqtt.DEBUG = log.New(&DebugWriter{logger: logger}, "[MQTT] ", 0)
|
||||||
mqtt.DEBUG = log.New(&ZapWriter{sugar: sugar}, "[DEBUG] ", 0)
|
mqtt.ERROR = log.New(&ErrorWriter{logger: logger}, "[MQTT] ", 0)
|
||||||
mqtt.ERROR = log.New(&ZapWriter{sugar: sugar}, "[ERROR] ", 0)
|
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user