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  }