fix deadlock in previous entry race condition fix

This commit is contained in:
Alisdair MacLeod 2020-03-19 10:01:29 +00:00
parent b28acda22d
commit ba670baee1
1 changed files with 3 additions and 2 deletions

View File

@ -219,8 +219,7 @@ func (entry Entry) HasCaller() (has bool) {
// This function is not declared with a pointer value because otherwise
// race conditions will occur when using multiple goroutines
func (entry Entry) log(level Level, msg string) {
entry.Logger.mu.Lock()
defer entry.Logger.mu.Unlock()
var buffer *bytes.Buffer
// Default to now, but allow users to override if they want.
@ -234,9 +233,11 @@ func (entry Entry) log(level Level, msg string) {
entry.Level = level
entry.Message = msg
entry.Logger.mu.Lock()
if entry.Logger.ReportCaller {
entry.Caller = getCaller()
}
entry.Logger.mu.Unlock()
entry.fireHooks()