do not clear error formatting informative field

This commit is contained in:
David Bariod
2018-12-14 17:01:34 +01:00
parent 9f049671f1
commit 9abefb94aa
2 changed files with 20 additions and 5 deletions
+7 -5
View File
@@ -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 {
@@ -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
@@ -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