github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/integration/e2e/logger.go (about) 1 package e2e 2 3 import ( 4 "fmt" 5 "io" 6 "os" 7 "strings" 8 "time" 9 10 "github.com/go-kit/log" 11 ) 12 13 // Global logger to use in integration tests. We use a global logger to simplify 14 // writing integration tests and avoiding having to pass the logger instance 15 // every time. 16 var logger log.Logger 17 18 func init() { 19 logger = NewLogger(os.Stdout) 20 } 21 22 type Logger struct { 23 w io.Writer 24 } 25 26 func NewLogger(w io.Writer) *Logger { 27 return &Logger{ 28 w: w, 29 } 30 } 31 32 func (l *Logger) Log(keyvals ...interface{}) error { 33 log := strings.Builder{} 34 log.WriteString(time.Now().Format("15:04:05")) 35 36 for _, v := range keyvals { 37 log.WriteString(" " + fmt.Sprint(v)) 38 } 39 40 log.WriteString("\n") 41 42 _, err := l.w.Write([]byte(log.String())) 43 return err 44 }