/
multi_logger_test.go
53 lines (38 loc) · 1.19 KB
/
multi_logger_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package sklog_test
import (
"bytes"
"errors"
"testing"
"github.com/go-kit/kit/log"
"github.com/piotrkowalczuk/sklog"
"github.com/stretchr/testify/assert"
)
type faultyLogger struct{}
func (fl *faultyLogger) Log(keyvals ...interface{}) (err error) {
return errors.New("sklog_test: faulty logger error")
}
func TestMultiLogger_Log(t *testing.T) {
b1 := bytes.NewBuffer(nil)
b2 := bytes.NewBuffer(nil)
l1 := log.NewJSONLogger(b1)
l2 := log.NewJSONLogger(b2)
l := sklog.NewMultiLogger(l1, l2)
sklog.Debug(l, "debug message")
sklog.Info(l, "info message")
sklog.Error(l, errors.New("sklog_test: example error message"))
assert.Equal(t, b1.String(), b2.String())
b1.Reset()
b2.Reset()
l1 = &faultyLogger{}
l2 = log.NewJSONLogger(b2)
l = sklog.NewMultiLogger(l1, l2)
sklog.Debug(l, "debug message")
sklog.Info(l, "info message")
sklog.Error(l, errors.New("sklog_test: example error message"))
assert.Contains(t, b2.String(), "debug message")
assert.Contains(t, b2.String(), "msg")
assert.Contains(t, b2.String(), "info message")
assert.Contains(t, b2.String(), "info")
assert.Contains(t, b2.String(), "debug")
assert.Contains(t, b2.String(), "sklog_test: example error message")
}