|
0 |
package logrus_test
|
|
1 |
|
|
2 |
import (
|
|
3 |
"bytes"
|
|
4 |
"errors"
|
|
5 |
"strings"
|
|
6 |
"testing"
|
|
7 |
|
|
8 |
log "github.com/go-kit/kit/log/logrus"
|
|
9 |
"github.com/sirupsen/logrus"
|
|
10 |
)
|
|
11 |
|
|
12 |
func TestLogrusLogger(t *testing.T) {
|
|
13 |
t.Parallel()
|
|
14 |
buf := &bytes.Buffer{}
|
|
15 |
logrusLogger := logrus.New()
|
|
16 |
logrusLogger.Out = buf
|
|
17 |
logrusLogger.Formatter = &logrus.TextFormatter{TimestampFormat: "02-01-2006 15:04:05", FullTimestamp: true}
|
|
18 |
logger := log.NewLogrusLogger(logrusLogger)
|
|
19 |
|
|
20 |
if err := logger.Log("hello", "world"); err != nil {
|
|
21 |
t.Fatal(err)
|
|
22 |
}
|
|
23 |
if want, have := "hello=world\n", strings.Split(buf.String(), " ")[3]; want != have {
|
|
24 |
t.Errorf("want %#v, have %#v", want, have)
|
|
25 |
}
|
|
26 |
|
|
27 |
buf.Reset()
|
|
28 |
if err := logger.Log("a", 1, "err", errors.New("error")); err != nil {
|
|
29 |
t.Fatal(err)
|
|
30 |
}
|
|
31 |
if want, have := "a=1 err=error", strings.TrimSpace(strings.SplitAfterN(buf.String(), " ", 4)[3]); want != have {
|
|
32 |
t.Errorf("want %#v, have %#v", want, have)
|
|
33 |
}
|
|
34 |
|
|
35 |
buf.Reset()
|
|
36 |
if err := logger.Log("a", 1, "b"); err != nil {
|
|
37 |
t.Fatal(err)
|
|
38 |
}
|
|
39 |
if want, have := "a=1 b=\"(MISSING)\"", strings.TrimSpace(strings.SplitAfterN(buf.String(), " ", 4)[3]); want != have {
|
|
40 |
t.Errorf("want %#v, have %#v", want, have)
|
|
41 |
}
|
|
42 |
|
|
43 |
buf.Reset()
|
|
44 |
if err := logger.Log("my_map", mymap{0: 0}); err != nil {
|
|
45 |
t.Fatal(err)
|
|
46 |
}
|
|
47 |
if want, have := "my_map=special_behavior", strings.TrimSpace(strings.Split(buf.String(), " ")[3]); want != have {
|
|
48 |
t.Errorf("want %#v, have %#v", want, have)
|
|
49 |
}
|
|
50 |
}
|
|
51 |
|
|
52 |
type mymap map[int]int
|
|
53 |
|
|
54 |
func (m mymap) String() string { return "special_behavior" }
|