8 tmflags "github.com/tendermint/tmlibs/cli/flags"
9 "github.com/tendermint/tmlibs/log"
13 defaultLogLevelValue = "info"
16 func TestParseLogLevel(t *testing.T) {
18 jsonLogger := log.NewTMJSONLogger(&buf)
20 correctLogLevels := []struct {
22 expectedLogLines []string
24 {"mempool:error", []string{
25 ``, // if no default is given, assume info
27 `{"_msg":"Mesmero","level":"error","module":"mempool"}`,
28 `{"_msg":"Mind","level":"info","module":"state"}`, // if no default is given, assume info
31 {"mempool:error,*:debug", []string{
32 `{"_msg":"Kingpin","level":"debug","module":"wire"}`,
34 `{"_msg":"Mesmero","level":"error","module":"mempool"}`,
35 `{"_msg":"Mind","level":"info","module":"state"}`,
36 `{"_msg":"Gideon","level":"debug"}`}},
38 {"*:debug,wire:none", []string{
40 `{"_msg":"Kitty Pryde","level":"info","module":"mempool"}`,
41 `{"_msg":"Mesmero","level":"error","module":"mempool"}`,
42 `{"_msg":"Mind","level":"info","module":"state"}`,
43 `{"_msg":"Gideon","level":"debug"}`}},
46 for _, c := range correctLogLevels {
47 logger, err := tmflags.ParseLogLevel(c.lvl, jsonLogger, defaultLogLevelValue)
54 logger.With("module", "wire").Debug("Kingpin")
55 if have := strings.TrimSpace(buf.String()); c.expectedLogLines[0] != have {
56 t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[0], have, c.lvl)
61 logger.With("module", "mempool").Info("Kitty Pryde")
62 if have := strings.TrimSpace(buf.String()); c.expectedLogLines[1] != have {
63 t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[1], have, c.lvl)
68 logger.With("module", "mempool").Error("Mesmero")
69 if have := strings.TrimSpace(buf.String()); c.expectedLogLines[2] != have {
70 t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[2], have, c.lvl)
75 logger.With("module", "state").Info("Mind")
76 if have := strings.TrimSpace(buf.String()); c.expectedLogLines[3] != have {
77 t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[3], have, c.lvl)
82 logger.Debug("Gideon")
83 if have := strings.TrimSpace(buf.String()); c.expectedLogLines[4] != have {
84 t.Errorf("\nwant '%s'\nhave '%s'\nlevel '%s'", c.expectedLogLines[4], have, c.lvl)
88 incorrectLogLevel := []string{"some", "mempool:some", "*:some,mempool:error"}
89 for _, lvl := range incorrectLogLevel {
90 if _, err := tmflags.ParseLogLevel(lvl, jsonLogger, defaultLogLevelValue); err == nil {
91 t.Fatalf("Expected %s to produce error", lvl)