-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathlogger_test.go
95 lines (76 loc) · 2.14 KB
/
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package log
import (
"testing"
asst "github.com/stretchr/testify/assert"
)
func TestLogger_AddField(t *testing.T) {
assert := asst.New(t)
logger := NewTestLogger(defaultLevel)
th := NewTestHandler()
logger.SetHandler(th)
logger.AddField(Str("foo", "bar"))
logger.InfoF("original")
e, ok := th.getLogByMessage("original")
assert.True(ok)
assert.Equal(e.context[0].Key, "foo")
assert.Equal(e.context[0].Str, "bar")
// TODO: now AddField is not handling duplication ...
t.Run("duplication is NOT handled", func(t *testing.T) {
logger.AddField(Str("foo", "bar2"))
logger.InfoF("bar2")
e, ok := th.getLogByMessage("bar2")
assert.True(ok)
assert.Equal(e.context[0].Key, "foo")
assert.Equal(e.context[0].Str, "bar")
assert.Equal(e.context[1].Key, "foo")
assert.Equal(e.context[1].Str, "bar2")
})
}
func TestLogger_WithField(t *testing.T) {
assert := asst.New(t)
l1 := NewTestLogger(defaultLevel)
th := NewTestHandler()
l1.SetHandler(th)
l2 := l1.WithField(Str("logger", "l2"))
l1.AddField(Str("logger", "l1"))
l1.InfoF("hi1")
l2.InfoF("hi2")
e, ok := th.getLogByMessage("hi1")
assert.True(ok)
assert.Equal(e.context[0].Str, "l1")
e, ok = th.getLogByMessage("hi2")
assert.True(ok)
assert.Equal(e.context[0].Str, "l2")
}
func TestLogger_WithFields(t *testing.T) {
assert := asst.New(t)
logger := NewTestLogger(defaultLevel)
th := NewTestHandler()
logger.SetHandler(th)
logger = logger.WithFields(Int("a", 1), Str("foo", "bar"))
logger.InfoF("hi")
e, ok := th.getLogByMessage("hi")
assert.True(ok)
assert.Equal(2, len(e.context))
}
func TestLogger_SetHandler(t *testing.T) {
assert := asst.New(t)
logger := NewTestLogger(defaultLevel)
th := NewTestHandler()
logger.SetHandler(th)
logger.Info("hello logger")
assert.True(th.HasLog(InfoLevel, "hello logger"))
}
func TestLogger_SetLevel(t *testing.T) {
assert := asst.New(t)
logger := NewTestLogger(defaultLevel)
th := NewTestHandler()
logger.SetHandler(th)
logger.SetLevel(DebugLevel)
logger.Info("hi")
logger.Debug("hi")
logger.Trace("hi")
assert.True(th.HasLog(InfoLevel, "hi"))
assert.True(th.HasLog(DebugLevel, "hi"))
assert.False(th.HasLog(TraceLevel, "hi"))
}