Merge pull request #446 from AndrewBurian/json-disable-timestamp
Json disable timestamp
diff --git a/json_formatter.go b/json_formatter.go
index f3729bf..266554e 100644
--- a/json_formatter.go
+++ b/json_formatter.go
@@ -26,6 +26,9 @@
// TimestampFormat sets the format used for marshaling timestamps.
TimestampFormat string
+ // DisableTimestamp allows disabling automatic timestamps in output
+ DisableTimestamp bool
+
// FieldMap allows users to customize the names of keys for various fields.
// As an example:
// formatter := &JSONFormatter{
@@ -57,7 +60,9 @@
timestampFormat = DefaultTimestampFormat
}
- data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+ if !f.DisableTimestamp {
+ data[f.FieldMap.resolve(FieldKeyTime)] = entry.Time.Format(timestampFormat)
+ }
data[f.FieldMap.resolve(FieldKeyMsg)] = entry.Message
data[f.FieldMap.resolve(FieldKeyLevel)] = entry.Level.String()
diff --git a/json_formatter_test.go b/json_formatter_test.go
index 5baa93e..51093a7 100644
--- a/json_formatter_test.go
+++ b/json_formatter_test.go
@@ -169,3 +169,31 @@
t.Fatal("Expected JSON to format time key")
}
}
+
+func TestJSONDisableTimestamp(t *testing.T) {
+ formatter := &JSONFormatter{
+ DisableTimestamp: true,
+ }
+
+ b, err := formatter.Format(WithField("level", "something"))
+ if err != nil {
+ t.Fatal("Unable to format entry: ", err)
+ }
+ s := string(b)
+ if strings.Contains(s, FieldKeyTime) {
+ t.Error("Did not prevent timestamp", s)
+ }
+}
+
+func TestJSONEnableTimestamp(t *testing.T) {
+ formatter := &JSONFormatter{}
+
+ b, err := formatter.Format(WithField("level", "something"))
+ if err != nil {
+ t.Fatal("Unable to format entry: ", err)
+ }
+ s := string(b)
+ if !strings.Contains(s, FieldKeyTime) {
+ t.Error("Timestamp not present", s)
+ }
+}