generated from pokt-network/repo-template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
context_example_test.go
43 lines (31 loc) · 1.25 KB
/
context_example_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
package polylog_test
import (
"context"
"os"
"github.com/rs/zerolog"
"github.com/pokt-network/polylog"
"github.com/pokt-network/polylog/polyzero"
)
func ExampleCtx() {
// Use whichever zerolog level you need.
level := zerolog.InfoLevel
// Specify the lowest level to log. I.e.: calls to level methods "lower"
// than this will be ignored.
levelOpt := polyzero.WithLevel(level)
// Construct a context, this is typically received as an argument.
ctx := context.Background()
// Construct expectedLogger.
// NB: adding WithOutput is optional; defaults to os.Stderr. It is needed
// here to print to stdout for testable example purposes.
expectedLogger := polyzero.NewLogger(levelOpt, polyzero.WithOutput(os.Stdout))
// Add fields to the expectedLogger's context so that we can identify it in the output.
expectedLogger = expectedLogger.With("label", "my_test_logger")
// Associate the expectedLogger with the context and update the context reference.
ctx = expectedLogger.WithContext(ctx)
// Retrieve the logger from the context.
retrievedLogger := polylog.Ctx(ctx)
// Log and check that the output matches our expectations.
retrievedLogger.Info().Msg("info message")
// Output:
// {"level":"info","label":"my_test_logger","message":"info message"}
}