forked from schollz/logger
-
Notifications
You must be signed in to change notification settings - Fork 0
/
logger_test.go
53 lines (47 loc) · 1.08 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
package logger
import (
"bytes"
"fmt"
"strings"
"testing"
)
func TestTrace(t *testing.T) {
var buf bytes.Buffer
SetOutput(&buf)
SetLevel("trace")
funcs := []func(...interface{}){Trace, Debug, Info, Warn, Error}
for i, s := range []string{"trace", "debug", "info", "warn", "error"} {
funcs[i](s)
fmt.Print(buf.String())
if !strings.Contains(buf.String(), s) {
t.Error("bad " + s)
}
buf.Reset()
}
}
func TestLogging(t *testing.T) {
logger := New()
var buf bytes.Buffer
logger.SetOutput(&buf)
levels := []string{"trace", "debug", "info", "warn", "error"}
funcs := []func(string, ...interface{}){logger.Tracef, logger.Debugf, logger.Infof, logger.Warnf, logger.Errorf}
for level, levelName := range levels {
logger.SetLevel(levelName)
for i, s := range levels {
funcs[i](s)
if i < level {
if buf.String() != "" {
t.Error("bad " + s)
}
} else {
if !strings.Contains(buf.String(), s) {
t.Error("bad " + s)
}
}
buf.Reset()
if logger.GetLevel() != levelName {
t.Error("could not get level name: " + levelName)
}
}
}
}