testlog: override testlogger with envvar

This commit is contained in:
Michael Schurter
2018-02-16 15:07:49 -08:00
parent 95b3b6eb02
commit 587d4e264b

View File

@@ -6,8 +6,14 @@ package testlog
import (
"io"
"log"
"os"
)
// UseStdout returns true if NOMAD_TEST_STDOUT=1 and sends logs to stdout.
func UseStdout() bool {
return os.Getenv("NOMAD_TEST_STDOUT") == "1"
}
// LogPrinter is the methods of testing.T (or testing.B) needed by the test
// logger.
type LogPrinter interface {
@@ -27,11 +33,17 @@ func (w *writer) Write(p []byte) (n int, err error) {
// NewWriter creates a new io.Writer backed by a Logger.
func NewWriter(t LogPrinter) io.Writer {
if UseStdout() {
return os.Stdout
}
return &writer{t}
}
// New returns a new test logger. See https://golang.org/pkg/log/#New
func New(t LogPrinter, prefix string, flag int) *log.Logger {
if UseStdout() {
return log.New(os.Stdout, prefix, flag)
}
return log.New(&writer{t}, prefix, flag)
}