forked from mirror/logrus
Merge pull request #1047 from lwsanty/fix-race-conditions-on-entry
fix race conditions on entry
This commit is contained in:
commit
77ab282a06
2
entry.go
2
entry.go
|
@ -122,6 +122,8 @@ func (entry *Entry) WithField(key string, value interface{}) *Entry {
|
|||
|
||||
// Add a map of fields to the Entry.
|
||||
func (entry *Entry) WithFields(fields Fields) *Entry {
|
||||
entry.Logger.mu.Lock()
|
||||
defer entry.Logger.mu.Unlock()
|
||||
data := make(Fields, len(entry.Data)+len(fields))
|
||||
for k, v := range entry.Data {
|
||||
data[k] = v
|
||||
|
|
|
@ -210,7 +210,7 @@ func TestEntryWithIncorrectField(t *testing.T) {
|
|||
|
||||
fn := func() {}
|
||||
|
||||
e := Entry{}
|
||||
e := &Entry{Logger: New()}
|
||||
eWithFunc := e.WithFields(Fields{"func": fn})
|
||||
eWithFuncPtr := e.WithFields(Fields{"funcPtr": &fn})
|
||||
|
||||
|
@ -238,8 +238,8 @@ func TestEntryLogfLevel(t *testing.T) {
|
|||
entry := NewEntry(logger)
|
||||
|
||||
entry.Logf(DebugLevel, "%s", "debug")
|
||||
assert.NotContains(t, buffer.String(), "debug", )
|
||||
assert.NotContains(t, buffer.String(), "debug")
|
||||
|
||||
entry.Logf(WarnLevel, "%s", "warn")
|
||||
assert.Contains(t, buffer.String(), "warn", )
|
||||
}
|
||||
assert.Contains(t, buffer.String(), "warn")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue