mirror of https://github.com/sirupsen/logrus.git
Merge pull request #1116 from admacleod/master
Resolve race condition with SetReportCaller() and Entry
This commit is contained in:
commit
4ddc9cf62e
2
entry.go
2
entry.go
|
@ -232,9 +232,11 @@ func (entry Entry) log(level Level, msg string) {
|
||||||
|
|
||||||
entry.Level = level
|
entry.Level = level
|
||||||
entry.Message = msg
|
entry.Message = msg
|
||||||
|
entry.Logger.mu.Lock()
|
||||||
if entry.Logger.ReportCaller {
|
if entry.Logger.ReportCaller {
|
||||||
entry.Caller = getCaller()
|
entry.Caller = getCaller()
|
||||||
}
|
}
|
||||||
|
entry.Logger.mu.Unlock()
|
||||||
|
|
||||||
entry.fireHooks()
|
entry.fireHooks()
|
||||||
|
|
||||||
|
|
|
@ -243,3 +243,14 @@ func TestEntryLogfLevel(t *testing.T) {
|
||||||
entry.Logf(WarnLevel, "%s", "warn")
|
entry.Logf(WarnLevel, "%s", "warn")
|
||||||
assert.Contains(t, buffer.String(), "warn")
|
assert.Contains(t, buffer.String(), "warn")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestEntryReportCallerRace(t *testing.T) {
|
||||||
|
logger := New()
|
||||||
|
entry := NewEntry(logger)
|
||||||
|
go func() {
|
||||||
|
logger.SetReportCaller(true)
|
||||||
|
}()
|
||||||
|
go func() {
|
||||||
|
entry.Info("should not race")
|
||||||
|
}()
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue