Fix console writer when unix time stamp and/or no message field is used
This commit is contained in:
parent
3e85c4b21c
commit
2a07580c27
@ -295,7 +295,13 @@ func consoleDefaultFormatTimestamp(timeFormat string, noColor bool) Formatter {
|
|||||||
t = ts.Format(timeFormat)
|
t = ts.Format(timeFormat)
|
||||||
}
|
}
|
||||||
case json.Number:
|
case json.Number:
|
||||||
|
i, err := tt.Int64()
|
||||||
|
if err != nil {
|
||||||
t = tt.String()
|
t = tt.String()
|
||||||
|
} else {
|
||||||
|
ts := time.Unix(i, 0)
|
||||||
|
t = ts.Format(timeFormat)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return colorize(t, colorDarkGray, noColor)
|
return colorize(t, colorDarkGray, noColor)
|
||||||
}
|
}
|
||||||
@ -347,6 +353,9 @@ func consoleDefaultFormatCaller(noColor bool) Formatter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func consoleDefaultFormatMessage(i interface{}) string {
|
func consoleDefaultFormatMessage(i interface{}) string {
|
||||||
|
if i == nil {
|
||||||
|
return ""
|
||||||
|
}
|
||||||
return fmt.Sprintf("%s", i)
|
return fmt.Sprintf("%s", i)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,6 +121,44 @@ func TestConsoleWriter(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("Unix timestamp input format", func(t *testing.T) {
|
||||||
|
of := zerolog.TimeFieldFormat
|
||||||
|
defer func() {
|
||||||
|
zerolog.TimeFieldFormat = of
|
||||||
|
}()
|
||||||
|
zerolog.TimeFieldFormat = zerolog.TimeFormatUnix
|
||||||
|
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
w := zerolog.ConsoleWriter{Out: buf, NoColor: true}
|
||||||
|
|
||||||
|
_, err := w.Write([]byte(`{"time": 0, "level": "debug", "message": "Foobar", "foo": "bar"}`))
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Unexpected error when writing output: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedOutput := "4:00PM DBG Foobar foo=bar\n"
|
||||||
|
actualOutput := buf.String()
|
||||||
|
if actualOutput != expectedOutput {
|
||||||
|
t.Errorf("Unexpected output %q, want: %q", actualOutput, expectedOutput)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("No message field", func(t *testing.T) {
|
||||||
|
buf := &bytes.Buffer{}
|
||||||
|
w := zerolog.ConsoleWriter{Out: buf, NoColor: true}
|
||||||
|
|
||||||
|
_, err := w.Write([]byte(`{"level": "debug", "foo": "bar"}`))
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("Unexpected error when writing output: %s", err)
|
||||||
|
}
|
||||||
|
|
||||||
|
expectedOutput := "<nil> DBG foo=bar\n"
|
||||||
|
actualOutput := buf.String()
|
||||||
|
if actualOutput != expectedOutput {
|
||||||
|
t.Errorf("Unexpected output %q, want: %q", actualOutput, expectedOutput)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
t.Run("Write colorized fields", func(t *testing.T) {
|
t.Run("Write colorized fields", func(t *testing.T) {
|
||||||
buf := &bytes.Buffer{}
|
buf := &bytes.Buffer{}
|
||||||
w := zerolog.ConsoleWriter{Out: buf, NoColor: false}
|
w := zerolog.ConsoleWriter{Out: buf, NoColor: false}
|
||||||
|
10
go.mod
10
go.mod
@ -1 +1,11 @@
|
|||||||
module github.com/rs/zerolog
|
module github.com/rs/zerolog
|
||||||
|
|
||||||
|
go 1.12
|
||||||
|
|
||||||
|
require (
|
||||||
|
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e
|
||||||
|
github.com/pkg/errors v0.8.1
|
||||||
|
github.com/rs/xid v1.2.1
|
||||||
|
github.com/zenazn/goji v0.9.0
|
||||||
|
golang.org/x/tools v0.0.0-20190425163242-31fd60d6bfdc
|
||||||
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user