# HG changeset patch
# User Christophe de Vienne <christophe@cdevienne.info>
# Date 1600348775 -7200
#      Thu Sep 17 15:19:35 2020 +0200
# Node ID 2f75d76afdfa28f0fbb7e6aa10b234a93aa2698c
# Parent  d6032c71d396d912c0a8137745a737a45356f5ce
Add the 'testutils' package

diff --git a/testutils/logger.go b/testutils/logger.go
new file mode 100644
--- /dev/null
+++ b/testutils/logger.go
@@ -0,0 +1,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()
+}