Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package testutils
import (
"os"
"testing"
"github.com/rs/zerolog"
)
//NewTestLogger creates a TestLogger
func NewTestLogger(tb testing.TB) *TestLogger {
return &TestLogger{tb}
}
// TestLogger logs to a t.Log function
type TestLogger struct {
tb testing.TB
}
// Logger returns a zerolog Logger
func (tl *TestLogger) Logger() zerolog.Logger {
level := zerolog.DebugLevel
if os.Getenv("TEST_TRACE") != "" {
level = zerolog.TraceLevel
}
return zerolog.New(zerolog.ConsoleWriter{Out: tl}).
With().Timestamp().Logger().
Level(level)
}
// Write writes the given string to t.Logf
func (tl *TestLogger) Write(m []byte) (int, error) {
tl.tb.Logf(string(m))
return len(m), nil
}
// GetLogger returns a test Logger
func GetLogger(tb testing.TB) zerolog.Logger {
return NewTestLogger(tb).Logger()
}