1
2
3 package zerolog_test
4
5 import (
6 "errors"
7 "fmt"
8 stdlog "log"
9 "net"
10 "os"
11 "time"
12
13 "github.com/rs/zerolog"
14 )
15
16 func ExampleNew() {
17 log := zerolog.New(os.Stdout)
18
19 log.Info().Msg("hello world")
20
21 }
22
23 func ExampleLogger_With() {
24 log := zerolog.New(os.Stdout).
25 With().
26 Str("foo", "bar").
27 Logger()
28
29 log.Info().Msg("hello world")
30
31
32 }
33
34 func ExampleLogger_Level() {
35 log := zerolog.New(os.Stdout).Level(zerolog.WarnLevel)
36
37 log.Info().Msg("filtered out message")
38 log.Error().Msg("kept message")
39
40
41 }
42
43 func ExampleLogger_Sample() {
44 log := zerolog.New(os.Stdout).Sample(&zerolog.BasicSampler{N: 2})
45
46 log.Info().Msg("message 1")
47 log.Info().Msg("message 2")
48 log.Info().Msg("message 3")
49 log.Info().Msg("message 4")
50
51
52
53 }
54
55 type LevelNameHook struct{}
56
57 func (h LevelNameHook) Run(e *zerolog.Event, l zerolog.Level, msg string) {
58 if l != zerolog.NoLevel {
59 e.Str("level_name", l.String())
60 } else {
61 e.Str("level_name", "NoLevel")
62 }
63 }
64
65 type MessageHook string
66
67 func (h MessageHook) Run(e *zerolog.Event, l zerolog.Level, msg string) {
68 e.Str("the_message", msg)
69 }
70
71 func ExampleLogger_Hook() {
72 var levelNameHook LevelNameHook
73 var messageHook MessageHook = "The message"
74
75 log := zerolog.New(os.Stdout).Hook(levelNameHook).Hook(messageHook)
76
77 log.Info().Msg("hello world")
78
79
80 }
81
82 func ExampleLogger_Print() {
83 log := zerolog.New(os.Stdout)
84
85 log.Print("hello world")
86
87
88 }
89
90 func ExampleLogger_Printf() {
91 log := zerolog.New(os.Stdout)
92
93 log.Printf("hello %s", "world")
94
95
96 }
97
98 func ExampleLogger_Trace() {
99 log := zerolog.New(os.Stdout)
100
101 log.Trace().
102 Str("foo", "bar").
103 Int("n", 123).
104 Msg("hello world")
105
106
107 }
108
109 func ExampleLogger_Debug() {
110 log := zerolog.New(os.Stdout)
111
112 log.Debug().
113 Str("foo", "bar").
114 Int("n", 123).
115 Msg("hello world")
116
117
118 }
119
120 func ExampleLogger_Info() {
121 log := zerolog.New(os.Stdout)
122
123 log.Info().
124 Str("foo", "bar").
125 Int("n", 123).
126 Msg("hello world")
127
128
129 }
130
131 func ExampleLogger_Warn() {
132 log := zerolog.New(os.Stdout)
133
134 log.Warn().
135 Str("foo", "bar").
136 Msg("a warning message")
137
138
139 }
140
141 func ExampleLogger_Error() {
142 log := zerolog.New(os.Stdout)
143
144 log.Error().
145 Err(errors.New("some error")).
146 Msg("error doing something")
147
148
149 }
150
151 func ExampleLogger_WithLevel() {
152 log := zerolog.New(os.Stdout)
153
154 log.WithLevel(zerolog.InfoLevel).
155 Msg("hello world")
156
157
158 }
159
160 func ExampleLogger_Write() {
161 log := zerolog.New(os.Stdout).With().
162 Str("foo", "bar").
163 Logger()
164
165 stdlog.SetFlags(0)
166 stdlog.SetOutput(log)
167
168 stdlog.Print("hello world")
169
170
171 }
172
173 func ExampleLogger_Log() {
174 log := zerolog.New(os.Stdout)
175
176 log.Log().
177 Str("foo", "bar").
178 Str("bar", "baz").
179 Msg("")
180
181
182 }
183
184 func ExampleEvent_Dict() {
185 log := zerolog.New(os.Stdout)
186
187 log.Log().
188 Str("foo", "bar").
189 Dict("dict", zerolog.Dict().
190 Str("bar", "baz").
191 Int("n", 1),
192 ).
193 Msg("hello world")
194
195
196 }
197
198 type User struct {
199 Name string
200 Age int
201 Created time.Time
202 }
203
204 func (u User) MarshalZerologObject(e *zerolog.Event) {
205 e.Str("name", u.Name).
206 Int("age", u.Age).
207 Time("created", u.Created)
208 }
209
210 type Price struct {
211 val uint64
212 prec int
213 unit string
214 }
215
216 func (p Price) MarshalZerologObject(e *zerolog.Event) {
217 denom := uint64(1)
218 for i := 0; i < p.prec; i++ {
219 denom *= 10
220 }
221 result := []byte(p.unit)
222 result = append(result, fmt.Sprintf("%d.%d", p.val/denom, p.val%denom)...)
223 e.Str("price", string(result))
224 }
225
226 type Users []User
227
228 func (uu Users) MarshalZerologArray(a *zerolog.Array) {
229 for _, u := range uu {
230 a.Object(u)
231 }
232 }
233
234 func ExampleEvent_Array() {
235 log := zerolog.New(os.Stdout)
236
237 log.Log().
238 Str("foo", "bar").
239 Array("array", zerolog.Arr().
240 Str("baz").
241 Int(1).
242 Dict(zerolog.Dict().
243 Str("bar", "baz").
244 Int("n", 1),
245 ),
246 ).
247 Msg("hello world")
248
249
250 }
251
252 func ExampleEvent_Array_object() {
253 log := zerolog.New(os.Stdout)
254
255
256 u := Users{
257 User{"John", 35, time.Time{}},
258 User{"Bob", 55, time.Time{}},
259 }
260
261 log.Log().
262 Str("foo", "bar").
263 Array("users", u).
264 Msg("hello world")
265
266
267 }
268
269 func ExampleEvent_Object() {
270 log := zerolog.New(os.Stdout)
271
272
273 u := User{"John", 35, time.Time{}}
274
275 log.Log().
276 Str("foo", "bar").
277 Object("user", u).
278 Msg("hello world")
279
280
281 }
282
283 func ExampleEvent_EmbedObject() {
284 log := zerolog.New(os.Stdout)
285
286 price := Price{val: 6449, prec: 2, unit: "$"}
287
288 log.Log().
289 Str("foo", "bar").
290 EmbedObject(price).
291 Msg("hello world")
292
293
294 }
295
296 func ExampleEvent_Interface() {
297 log := zerolog.New(os.Stdout)
298
299 obj := struct {
300 Name string `json:"name"`
301 }{
302 Name: "john",
303 }
304
305 log.Log().
306 Str("foo", "bar").
307 Interface("obj", obj).
308 Msg("hello world")
309
310
311 }
312
313 func ExampleEvent_Dur() {
314 d := 10 * time.Second
315
316 log := zerolog.New(os.Stdout)
317
318 log.Log().
319 Str("foo", "bar").
320 Dur("dur", d).
321 Msg("hello world")
322
323
324 }
325
326 func ExampleEvent_Durs() {
327 d := []time.Duration{
328 10 * time.Second,
329 20 * time.Second,
330 }
331
332 log := zerolog.New(os.Stdout)
333
334 log.Log().
335 Str("foo", "bar").
336 Durs("durs", d).
337 Msg("hello world")
338
339
340 }
341
342 func ExampleEvent_Fields_map() {
343 fields := map[string]interface{}{
344 "bar": "baz",
345 "n": 1,
346 }
347
348 log := zerolog.New(os.Stdout)
349
350 log.Log().
351 Str("foo", "bar").
352 Fields(fields).
353 Msg("hello world")
354
355
356 }
357
358 func ExampleEvent_Fields_slice() {
359 fields := []interface{}{
360 "bar", "baz",
361 "n", 1,
362 }
363
364 log := zerolog.New(os.Stdout)
365
366 log.Log().
367 Str("foo", "bar").
368 Fields(fields).
369 Msg("hello world")
370
371
372 }
373
374 func ExampleContext_Dict() {
375 log := zerolog.New(os.Stdout).With().
376 Str("foo", "bar").
377 Dict("dict", zerolog.Dict().
378 Str("bar", "baz").
379 Int("n", 1),
380 ).Logger()
381
382 log.Log().Msg("hello world")
383
384
385 }
386
387 func ExampleContext_Array() {
388 log := zerolog.New(os.Stdout).With().
389 Str("foo", "bar").
390 Array("array", zerolog.Arr().
391 Str("baz").
392 Int(1),
393 ).Logger()
394
395 log.Log().Msg("hello world")
396
397
398 }
399
400 func ExampleContext_Array_object() {
401
402 u := Users{
403 User{"John", 35, time.Time{}},
404 User{"Bob", 55, time.Time{}},
405 }
406
407 log := zerolog.New(os.Stdout).With().
408 Str("foo", "bar").
409 Array("users", u).
410 Logger()
411
412 log.Log().Msg("hello world")
413
414
415 }
416
417 func ExampleContext_Object() {
418
419 u := User{"John", 35, time.Time{}}
420
421 log := zerolog.New(os.Stdout).With().
422 Str("foo", "bar").
423 Object("user", u).
424 Logger()
425
426 log.Log().Msg("hello world")
427
428
429 }
430
431 func ExampleContext_EmbedObject() {
432
433 price := Price{val: 6449, prec: 2, unit: "$"}
434
435 log := zerolog.New(os.Stdout).With().
436 Str("foo", "bar").
437 EmbedObject(price).
438 Logger()
439
440 log.Log().Msg("hello world")
441
442
443 }
444
445 func ExampleContext_Interface() {
446 obj := struct {
447 Name string `json:"name"`
448 }{
449 Name: "john",
450 }
451
452 log := zerolog.New(os.Stdout).With().
453 Str("foo", "bar").
454 Interface("obj", obj).
455 Logger()
456
457 log.Log().Msg("hello world")
458
459
460 }
461
462 func ExampleContext_Dur() {
463 d := 10 * time.Second
464
465 log := zerolog.New(os.Stdout).With().
466 Str("foo", "bar").
467 Dur("dur", d).
468 Logger()
469
470 log.Log().Msg("hello world")
471
472
473 }
474
475 func ExampleContext_Durs() {
476 d := []time.Duration{
477 10 * time.Second,
478 20 * time.Second,
479 }
480
481 log := zerolog.New(os.Stdout).With().
482 Str("foo", "bar").
483 Durs("durs", d).
484 Logger()
485
486 log.Log().Msg("hello world")
487
488
489 }
490
491 func ExampleContext_IPAddr() {
492 hostIP := net.IP{192, 168, 0, 100}
493 log := zerolog.New(os.Stdout).With().
494 IPAddr("HostIP", hostIP).
495 Logger()
496
497 log.Log().Msg("hello world")
498
499
500 }
501
502 func ExampleContext_IPPrefix() {
503 route := net.IPNet{IP: net.IP{192, 168, 0, 0}, Mask: net.CIDRMask(24, 32)}
504 log := zerolog.New(os.Stdout).With().
505 IPPrefix("Route", route).
506 Logger()
507
508 log.Log().Msg("hello world")
509
510
511 }
512
513 func ExampleContext_MACAddr() {
514 mac := net.HardwareAddr{0x00, 0x14, 0x22, 0x01, 0x23, 0x45}
515 log := zerolog.New(os.Stdout).With().
516 MACAddr("hostMAC", mac).
517 Logger()
518
519 log.Log().Msg("hello world")
520
521
522 }
523
524 func ExampleContext_Fields_map() {
525 fields := map[string]interface{}{
526 "bar": "baz",
527 "n": 1,
528 }
529
530 log := zerolog.New(os.Stdout).With().
531 Str("foo", "bar").
532 Fields(fields).
533 Logger()
534
535 log.Log().Msg("hello world")
536
537
538 }
539
540 func ExampleContext_Fields_slice() {
541 fields := []interface{}{
542 "bar", "baz",
543 "n", 1,
544 }
545
546 log := zerolog.New(os.Stdout).With().
547 Str("foo", "bar").
548 Fields(fields).
549 Logger()
550
551 log.Log().Msg("hello world")
552
553
554 }
555
View as plain text