github.com/Iqoqo/consul@v1.4.5/testutil/testlog.go (about)

     1  package testutil
     2  
     3  import (
     4  	"fmt"
     5  	"io"
     6  	"log"
     7  	"os"
     8  	"strings"
     9  	"testing"
    10  )
    11  
    12  var sendTestLogsToStdout bool
    13  
    14  func init() {
    15  	sendTestLogsToStdout = os.Getenv("NOLOGBUFFER") == "1"
    16  }
    17  
    18  func TestLogger(t testing.TB) *log.Logger {
    19  	return log.New(&testWriter{t}, "test: ", log.LstdFlags)
    20  }
    21  
    22  func TestLoggerWithName(t testing.TB, name string) *log.Logger {
    23  	return log.New(&testWriter{t}, "test["+name+"]: ", log.LstdFlags)
    24  }
    25  
    26  func TestWriter(t testing.TB) io.Writer {
    27  	return &testWriter{t}
    28  }
    29  
    30  type testWriter struct {
    31  	t testing.TB
    32  }
    33  
    34  func (tw *testWriter) Write(p []byte) (n int, err error) {
    35  	tw.t.Helper()
    36  	if sendTestLogsToStdout {
    37  		fmt.Fprint(os.Stdout, strings.TrimSpace(string(p))+"\n")
    38  	} else {
    39  		tw.t.Log(strings.TrimSpace(string(p)))
    40  	}
    41  	return len(p), nil
    42  }