Codebase list golang-github-go-kit-kit / 78f29dc
log/experimental_level: package documentation Peter Bourgon 7 years ago
1 changed file(s) with 27 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
0 // Package level is an EXPERIMENTAL levelled logging package. The API will
1 // definitely have breaking changes and may be deleted altogether. Be warned!
2 //
3 // To use the level package, create a logger as per normal in your func main,
4 // and wrap it with level.New.
5 //
6 // var logger log.Logger
7 // logger = log.NewLogfmtLogger(os.Stderr)
8 // logger = level.New(logger, level.Config{Allowed: level.AllowInfoAndAbove}) // <--
9 // logger = log.NewContext(logger).With("ts", log.DefaultTimestampUTC)
10 //
11 // Then, at the callsites, use one of the level.Debug, Info, Warn, or Error
12 // helper methods to emit leveled log events.
13 //
14 // logger.Log("foo", "bar") // as normal, no level
15 // level.Debug(logger).Log("request_id", reqID, "trace_data", trace.Get())
16 // if value > 100 {
17 // level.Error(logger).Log("value", value)
18 // }
19 //
20 // The leveled logger allows precise control over what should happen if a log
21 // event is emitted without a level key, or if a squelched level is used. Check
22 // the Config struct for details. And, you can easily use non-default level
23 // values: create new string constants for whatever you want to change, pass
24 // them explicitly to the Config struct, and write your own level.Foo-style
25 // helper methods.
26 package level