hooks: lock on the logger before printing to stderr, printf args

This commit is contained in:
Antoine Grondin 2014-10-21 19:26:29 -04:00
parent 3d46664b06
commit 938dffa0e0
1 changed files with 5 additions and 1 deletions

View File

@ -76,12 +76,16 @@ func (entry *Entry) log(level Level, msg string) {
entry.Message = msg entry.Message = msg
if err := entry.Logger.Hooks.Fire(level, entry); err != nil { if err := entry.Logger.Hooks.Fire(level, entry); err != nil {
fmt.Fprintf(os.Stderr, "Failed to fire hook\n", err) entry.Logger.mu.Lock()
fmt.Fprintf(os.Stderr, "Failed to fire hook: %v\n", err)
entry.Logger.mu.Unlock()
} }
reader, err := entry.Reader() reader, err := entry.Reader()
if err != nil { if err != nil {
entry.Logger.mu.Lock()
fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err) fmt.Fprintf(os.Stderr, "Failed to obtain reader, %v\n", err)
entry.Logger.mu.Unlock()
} }
entry.Logger.mu.Lock() entry.Logger.mu.Lock()