Added resolve method to clean up Format
diff --git a/json_formatter.go b/json_formatter.go
index 7364fe8..0c74e5a 100644
--- a/json_formatter.go
+++ b/json_formatter.go
@@ -5,6 +5,14 @@
"fmt"
)
+type fieldKey string
+
+const (
+ DefaultKeyMsg = "msg"
+ DefaultKeyLevel = "level"
+ DefaultKeyTime = "time"
+)
+
type JSONFormatter struct {
// TimestampFormat sets the format used for marshaling timestamps.
TimestampFormat string
@@ -32,24 +40,9 @@
timestampFormat = DefaultTimestampFormat
}
- timeKey := f.TimeKey
- if timeKey == "" {
- timeKey = "time"
- }
-
- messageKey := f.MessageKey
- if messageKey == "" {
- messageKey = "msg"
- }
-
- levelKey := f.LevelKey
- if levelKey == "" {
- levelKey = "level"
- }
-
- data[timeKey] = entry.Time.Format(timestampFormat)
- data[messageKey] = entry.Message
- data[levelKey] = entry.Level.String()
+ data[f.resolveKey(f.TimeKey, DefaultKeyTime)] = entry.Time.Format(timestampFormat)
+ data[f.resolveKey(f.MessageKey, DefaultKeyMsg)] = entry.Message
+ data[f.resolveKey(f.LevelKey, DefaultKeyLevel)] = entry.Level.String()
serialized, err := json.Marshal(data)
if err != nil {
@@ -57,3 +50,10 @@
}
return append(serialized, '\n'), nil
}
+
+func (f *JSONFormatter) resolveKey(key, defaultKey string) string {
+ if len(key) > 0 {
+ return key
+ }
+ return defaultKey
+}