diff --git a/lib/logger/logger.go b/lib/logger/logger.go index c057197c..75ca9a7f 100644 --- a/lib/logger/logger.go +++ b/lib/logger/logger.go @@ -6,6 +6,7 @@ package logger import ( "fmt" + "io" "io/ioutil" "log" "os" @@ -69,6 +70,10 @@ type logger struct { var DefaultLogger = New() func New() Logger { + return newLogger(os.Stdout) +} + +func newLogger(w io.Writer) Logger { res := &logger{ facilities: make(map[string]string), debug: make(map[string]struct{}), @@ -78,7 +83,7 @@ func New() Logger { res.logger = log.New(ioutil.Discard, "", 0) return res } - res.logger = log.New(os.Stdout, "", DefaultFlags) + res.logger = log.New(w, "", DefaultFlags) return res } diff --git a/lib/logger/logger_test.go b/lib/logger/logger_test.go index 4455006d..9e0db128 100644 --- a/lib/logger/logger_test.go +++ b/lib/logger/logger_test.go @@ -4,7 +4,9 @@ package logger import ( + "bytes" "fmt" + "log" "strings" "testing" "time" @@ -149,5 +151,18 @@ func TestRecorder(t *testing.T) { if lines[0].Message != "hah" { t.Errorf("incorrect line: %s", lines[0].Message) } - +} + +func TestStackLevel(t *testing.T) { + b := new(bytes.Buffer) + l := newLogger(b) + + l.SetFlags(log.Lshortfile) + l.Infoln("testing") + res := b.String() + + if !strings.Contains(res, "logger_test.go:") { + t.Logf("%q", res) + t.Error("Should identify this file as the source (bad level?)") + } }