diff options
author | Taylor Gerring <taylor.gerring@gmail.com> | 2015-01-22 00:57:29 +0800 |
---|---|---|
committer | Taylor Gerring <taylor.gerring@gmail.com> | 2015-01-22 00:57:29 +0800 |
commit | 1077109e1153cc4fb4eece59dd48cd9f640d0e0b (patch) | |
tree | 6a1c748702dfb5a78071d16c2185fca33b16aa42 /logger | |
parent | ed7d7b405e1de8010f2ddeecf2b3798e2f07ad31 (diff) | |
download | go-tangerine-1077109e1153cc4fb4eece59dd48cd9f640d0e0b.tar.gz go-tangerine-1077109e1153cc4fb4eece59dd48cd9f640d0e0b.tar.zst go-tangerine-1077109e1153cc4fb4eece59dd48cd9f640d0e0b.zip |
Add JsonLogger type
Diffstat (limited to 'logger')
-rw-r--r-- | logger/loggers.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/logger/loggers.go b/logger/loggers.go index 77d111974..053f120be 100644 --- a/logger/loggers.go +++ b/logger/loggers.go @@ -13,8 +13,10 @@ logging of mutable state. package logger import ( + "encoding/json" "fmt" "os" + "time" ) type LogLevel uint32 @@ -112,3 +114,27 @@ func (logger *Logger) Fatalf(format string, v ...interface{}) { Flush() os.Exit(0) } + +type JsonLogger struct{} + +func NewJsonLogger() *JsonLogger { + return &JsonLogger{} +} + +func (logger *JsonLogger) Log(msgname string, dict map[string]interface{}) { + if _, ok := dict["ts"]; !ok { + dict["ts"] = time.Now().Local().Format(time.RFC3339Nano) + } + + // FIX + if _, ok := dict["level"]; !ok { + dict["level"] = "debug" + } + + obj := map[string]interface{}{ + msgname: dict, + } + + jsontxt, _ := json.Marshal(obj) + logMessageC <- message{JsonLevel, fmt.Sprintf("%s", jsontxt)} +} |