logger.go 814 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package logtest
  2. import (
  3. "bufio"
  4. "io"
  5. "testing"
  6. "github.com/go-kit/kit/log"
  7. )
  8. // Logger logs every line it is written to it. t.Log(prefix: line)
  9. func Logger(prefix string, t *testing.T) io.WriteCloser {
  10. pr, pw := io.Pipe()
  11. go func() {
  12. s := bufio.NewScanner(pr)
  13. for s.Scan() {
  14. t.Logf("%s: %q", prefix, s.Text())
  15. }
  16. if err := s.Err(); err != nil {
  17. t.Errorf("%s: scanner error:%s", prefix, err)
  18. }
  19. }()
  20. return pw
  21. }
  22. func KitLogger(test string, t testing.TB) (log.Logger, io.Writer) {
  23. pr, pw := io.Pipe()
  24. go func() {
  25. s := bufio.NewScanner(pr)
  26. for s.Scan() {
  27. t.Logf(s.Text())
  28. }
  29. if err := s.Err(); err != nil {
  30. t.Errorf("%s: scanner error:%s", test, err)
  31. }
  32. }()
  33. logger := log.NewLogfmtLogger(log.NewSyncWriter(pw))
  34. logger = log.With(logger, "test", test)
  35. return logger, pw
  36. }