log/experimental_level: add basic valuer tests
Peter Bourgon
7 years ago
119 | 119 | t.Errorf("want %q, have %q", want, have) |
120 | 120 | } |
121 | 121 | } |
122 | ||
123 | func TestLevelContext(t *testing.T) { | |
124 | var buf bytes.Buffer | |
125 | ||
126 | // Wrapping the level logger with a context allows users to use | |
127 | // log.DefaultCaller as per normal. | |
128 | var logger log.Logger | |
129 | logger = log.NewLogfmtLogger(&buf) | |
130 | logger = level.New(logger, level.Config{Allowed: level.AllowAll}) | |
131 | logger = log.NewContext(logger).With("caller", log.DefaultCaller) | |
132 | ||
133 | level.Info(logger).Log("foo", "bar") | |
134 | if want, have := `caller=level_test.go:134 level=info foo=bar`, strings.TrimSpace(buf.String()); want != have { | |
135 | t.Errorf("want %q, have %q", want, have) | |
136 | } | |
137 | } | |
138 | ||
139 | func TestContextLevel(t *testing.T) { | |
140 | var buf bytes.Buffer | |
141 | ||
142 | // Wrapping a context with the level logger still works, but requires users | |
143 | // to specify a higher callstack depth value. | |
144 | var logger log.Logger | |
145 | logger = log.NewLogfmtLogger(&buf) | |
146 | logger = log.NewContext(logger).With("caller", log.Caller(5)) | |
147 | logger = level.New(logger, level.Config{Allowed: level.AllowAll}) | |
148 | ||
149 | level.Info(logger).Log("foo", "bar") | |
150 | if want, have := `caller=level_test.go:150 level=info foo=bar`, strings.TrimSpace(buf.String()); want != have { | |
151 | t.Errorf("want %q, have %q", want, have) | |
152 | } | |
153 | } |