From 4fc7754505605552a2eb09cfbaaef3aa10c7023b Mon Sep 17 00:00:00 2001 From: Felicitas Pojtinger Date: Tue, 28 Dec 2021 22:36:44 +0100 Subject: [PATCH] feat: Add full JSON output to JSON logger --- internal/logging/json.go | 33 +++++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/internal/logging/json.go b/internal/logging/json.go index 1b73348..898ef54 100644 --- a/internal/logging/json.go +++ b/internal/logging/json.go @@ -1,11 +1,32 @@ package logging import ( - "log" + "encoding/json" + "fmt" + "os" + "time" golog "github.com/fclairamb/go-log" ) +type logMessage struct { + Time int64 `json:"time"` + Level string `json:"level"` + Event string `json:"event"` + Data interface{} `json:"data"` +} + +func printJSON(level string, event string, keyvals interface{}) { + line, _ := json.Marshal(&logMessage{ + Time: time.Now().Unix(), + Level: level, + Event: event, + Data: keyvals, + }) // We are ignoring JSON marshalling erorrs + + fmt.Fprintln(os.Stderr, string(line)) +} + type JSONLogger struct{} func NewJSONLogger() *JSONLogger { @@ -13,23 +34,23 @@ func NewJSONLogger() *JSONLogger { } func (l JSONLogger) Trace(event string, keyvals ...interface{}) { - log.Println("TRACE", event, keyvals) + printJSON("TRACE", event, keyvals) } func (l JSONLogger) Debug(event string, keyvals ...interface{}) { - log.Println("DEBUG", event, keyvals) + printJSON("DEBUG", event, keyvals) } func (l JSONLogger) Info(event string, keyvals ...interface{}) { - log.Println("INFO", event, keyvals) + printJSON("INFO", event, keyvals) } func (l JSONLogger) Warn(event string, keyvals ...interface{}) { - log.Println("WARN", event, keyvals) + printJSON("WARN", event, keyvals) } func (l JSONLogger) Error(event string, keyvals ...interface{}) { - log.Println("ERROR", event, keyvals) + printJSON("ERROR", event, keyvals) } func (l JSONLogger) With(keyvals ...interface{}) golog.Logger {