From 316863735d692b1836def27504740e095d271e3f Mon Sep 17 00:00:00 2001 From: Bruno Carlin Date: Mon, 24 Jun 2013 17:35:43 +0200 Subject: [PATCH] Move the filter on the level of the record from backends to the logger (in order to have consistent behaviour) --- backend.go | 9 +++------ logger.go | 5 +++-- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/backend.go b/backend.go index 3ab7924..7484b40 100644 --- a/backend.go +++ b/backend.go @@ -26,12 +26,9 @@ func NewStdoutBackend() (b *StdoutBackend) { } func (b StdoutBackend) Write(r *Record) error { - if r.Level >= b.level { - //check back for auto dereferencing - text := (*b.formatter)(r) - b.l.Write([]byte(text)) - } - return nil + text := (*b.formatter)(r) + _, err := io.WriteString(b.l, text) + return err } func (b *StdoutBackend) SetLevel(l Level) { diff --git a/logger.go b/logger.go index 1aab4b9..c0e27e6 100644 --- a/logger.go +++ b/logger.go @@ -31,8 +31,9 @@ func (l *Logger) SetLevel(level Level) { func (l *Logger) Log(level Level, m string) { r := NewRecord(level, m) for _, backend := range l.backends { - //Should be dereferenced automatically ? - backend.Write(r) + if r.Level >= backend.Level() { + backend.Write(r) + } } }