Quote non-string values if necessary

This commit is contained in:
Paul Seiffert 2017-07-12 17:15:13 +02:00
parent 10e5e38b53
commit b9cfd82645
No known key found for this signature in database
GPG Key ID: C9F76DC911D6EA29
2 changed files with 17 additions and 1 deletions

View File

@ -184,7 +184,12 @@ func (f *TextFormatter) appendValue(b *bytes.Buffer, value interface{}) {
b.WriteString(f.quoteString(errmsg))
}
default:
fmt.Fprint(b, value)
s := fmt.Sprint(value)
if !f.needsQuoting(s) {
b.WriteString(s)
} else {
b.WriteString(f.quoteString(s))
}
}
}

View File

@ -6,6 +6,7 @@ import (
"strings"
"testing"
"time"
"fmt"
)
func TestQuoting(t *testing.T) {
@ -83,6 +84,16 @@ func TestEscaping_DefaultQuoteCharacter(t *testing.T) {
}
}
func TestEscaping_Time(t *testing.T) {
tf := &TextFormatter{DisableColors: true}
ts := time.Now()
b, _ := tf.Format(WithField("test", ts))
if !bytes.Contains(b, []byte(fmt.Sprintf("\"%s\"", ts.Format("2006-01-02 15:04:05.999999999 -0700 MST")))) {
t.Errorf("escaping expected for %q (result was %q)", ts, string(b))
}
}
func TestEscaping_CustomQuoteCharacter(t *testing.T) {
tf := &TextFormatter{DisableColors: true}