aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2017-11-23 03:42:55 +0000
committerFelix Hanley <felix@userspace.com.au>2017-11-23 03:42:55 +0000
commitf519e583e7f0db3dcf8fe3a34de9fdd56068030e (patch)
treefa2bc89f3f8832a9dff529132a792636610c2b11
parent0c32eeb4ab785403131babedc9936e3aa84a52ce (diff)
downloadlogger-f519e583e7f0db3dcf8fe3a34de9fdd56068030e.tar.gz
logger-f519e583e7f0db3dcf8fe3a34de9fdd56068030e.tar.bz2
Update JSON formatter
-rw-r--r--json_writer.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/json_writer.go b/json_writer.go
index 9ac1f5d..87d875c 100644
--- a/json_writer.go
+++ b/json_writer.go
@@ -1,14 +1,28 @@
package logger
import (
+ "bufio"
"encoding/json"
- "io"
)
type JSONWriter struct{}
-func (jw JSONWriter) Write(w io.Writer, m Message) {
- err := json.NewEncoder(w).Encode(m)
+func NewJSONWriter() *JSONWriter {
+ return &JSONWriter{}
+}
+
+func (jw JSONWriter) Write(w *bufio.Writer, m Message) {
+ vals := map[string]interface{}{
+ "@name": m.Name,
+ "@level": m.Level.String(),
+ "@time": m.Time,
+ }
+
+ for i := 0; i < len(m.Fields); i = i + 2 {
+ vals[toString(m.Fields[i])] = m.Fields[i+1]
+ }
+
+ err := json.NewEncoder(w).Encode(vals)
if err != nil {
panic(err)
}