lib/logger: Add test for stack level (#5430)

This commit is contained in:
Jakob Borg 2019-01-04 17:51:58 +01:00 committed by GitHub
parent 597cee67d3
commit 04070b4848
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 22 additions and 2 deletions

View File

@ -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
}

View File

@ -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?)")
}
}