Skip to content

Commit

Permalink
do not clear error formatting informative field
Browse files Browse the repository at this point in the history
  • Loading branch information
dgsb committed Dec 14, 2018
1 parent 9f04967 commit 9abefb9
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 5 deletions.
12 changes: 7 additions & 5 deletions entry.go
Expand Up @@ -108,7 +108,7 @@ func (entry *Entry) WithFields(fields Fields) *Entry {
for k, v := range entry.Data {
data[k] = v
}
var fieldErr string
fieldErr := entry.err
for k, v := range fields {
isErrField := false
if t := reflect.TypeOf(v); t != nil {
Expand All @@ -120,9 +120,11 @@ func (entry *Entry) WithFields(fields Fields) *Entry {
}
}
if isErrField {
fieldErr = fmt.Sprintf("can not add field %q", k)
if entry.err != "" {
fieldErr = entry.err + ", " + fieldErr
tmp := fmt.Sprintf("can not add field %q", k)
if fieldErr != "" {
fieldErr = entry.err + ", " + tmp
} else {
fieldErr = tmp
}
} else {
data[k] = v
Expand All @@ -133,7 +135,7 @@ func (entry *Entry) WithFields(fields Fields) *Entry {

// Overrides the time of the Entry.
func (entry *Entry) WithTime(t time.Time) *Entry {
return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t}
return &Entry{Logger: entry.Logger, Data: entry.Data, Time: t, err: entry.err}
}

// getPackageName reduces a fully qualified function name to the package name
Expand Down
13 changes: 13 additions & 0 deletions entry_test.go
Expand Up @@ -4,6 +4,7 @@ import (
"bytes"
"fmt"
"testing"
"time"

"github.com/stretchr/testify/assert"
)
Expand Down Expand Up @@ -125,4 +126,16 @@ func TestEntryWithIncorrectField(t *testing.T) {

assert.Equal(eWithFunc.err, `can not add field "func"`)
assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`)

eWithFunc = eWithFunc.WithField("not_a_func", "it is a string")
eWithFuncPtr = eWithFuncPtr.WithField("not_a_func", "it is a string")

assert.Equal(eWithFunc.err, `can not add field "func"`)
assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`)

eWithFunc = eWithFunc.WithTime(time.Now())
eWithFuncPtr = eWithFuncPtr.WithTime(time.Now())

assert.Equal(eWithFunc.err, `can not add field "func"`)
assert.Equal(eWithFuncPtr.err, `can not add field "funcPtr"`)
}

0 comments on commit 9abefb9

Please sign in to comment.