diff --git a/intlogger.go b/intlogger.go index 83232f7..3ad60fb 100644 --- a/intlogger.go +++ b/intlogger.go @@ -269,11 +269,14 @@ func (l *intLogger) logPlain(t time.Time, name string, level Level, msg string, if name != "" { l.writer.WriteString(name) - l.writer.WriteString(": ") + if msg != "" { + l.writer.WriteString(": ") + l.writer.WriteString(msg) + } + } else if msg != "" { + l.writer.WriteString(msg) } - l.writer.WriteString(msg) - args = append(l.implied, args...) var stacktrace CapturedStacktrace diff --git a/logger_test.go b/logger_test.go index b098b7e..4c419ed 100644 --- a/logger_test.go +++ b/logger_test.go @@ -1004,6 +1004,24 @@ func TestLogger_JSON(t *testing.T) { assert.Equal(t, "this is test", raw["@message"]) assert.Equal(t, errJsonUnsupportedTypeMsg, raw["@warn"]) }) + + t.Run("omits the entry for the message when empty", func(t *testing.T) { + var buf bytes.Buffer + DefaultOutput = &buf + + logger := New(&LoggerOptions{ + Name: "test", + }) + + logger.Info("", "who", "programmer", "why", "testing") + + str := buf.String() + dataIdx := strings.IndexByte(str, ' ') + rest := str[dataIdx+1:] + + assert.Equal(t, "[INFO] test: who=programmer why=testing\n", rest) + }) + } type customErrJSON struct {