doc(readme): explain zerolog with context (#544)
Add section about `context.Context` usage with zerolog instance
This commit is contained in:
parent
64a5863c5e
commit
a712f61936
26
README.md
26
README.md
|
@ -24,7 +24,7 @@ Find out [who uses zerolog](https://github.com/rs/zerolog/wiki/Who-uses-zerolog)
|
||||||
* [Sampling](#log-sampling)
|
* [Sampling](#log-sampling)
|
||||||
* [Hooks](#hooks)
|
* [Hooks](#hooks)
|
||||||
* [Contextual fields](#contextual-logging)
|
* [Contextual fields](#contextual-logging)
|
||||||
* `context.Context` integration
|
* [`context.Context` integration](#contextcontext-integration)
|
||||||
* [Integration with `net/http`](#integration-with-nethttp)
|
* [Integration with `net/http`](#integration-with-nethttp)
|
||||||
* [JSON and CBOR encoding formats](#binary-encoding)
|
* [JSON and CBOR encoding formats](#binary-encoding)
|
||||||
* [Pretty logging for development](#pretty-logging)
|
* [Pretty logging for development](#pretty-logging)
|
||||||
|
@ -511,6 +511,30 @@ stdlog.Print("hello world")
|
||||||
// Output: {"foo":"bar","message":"hello world"}
|
// Output: {"foo":"bar","message":"hello world"}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### context.Context integration
|
||||||
|
|
||||||
|
The `Logger` isntance could be attached to `context.Context` values with `logger.WithContext(ctx)`
|
||||||
|
and extracted from it using `zerolog.Ctx(ctx)`.
|
||||||
|
|
||||||
|
Example to add logger to context:
|
||||||
|
```go
|
||||||
|
// this code attach logger instance to context fields
|
||||||
|
ctx := context.Background()
|
||||||
|
logger := zerolog.New(os.Stdout)
|
||||||
|
ctx = logger.WithContext(ctx)
|
||||||
|
someFunc(ctx)
|
||||||
|
```
|
||||||
|
|
||||||
|
Extracting logger from context:
|
||||||
|
```go
|
||||||
|
func someFunc(ctx context.Context) {
|
||||||
|
// get logger from context. if it's nill, then `zerolog.DefaultContextLogger` is returned,
|
||||||
|
// if `DefaultContextLogger` is nil, then disabled logger returned.
|
||||||
|
logger := zerolog.Ctx(ctx)
|
||||||
|
logger.Info().Msg("Hello")
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
### Integration with `net/http`
|
### Integration with `net/http`
|
||||||
|
|
||||||
The `github.com/rs/zerolog/hlog` package provides some helpers to integrate zerolog with `http.Handler`.
|
The `github.com/rs/zerolog/hlog` package provides some helpers to integrate zerolog with `http.Handler`.
|
||||||
|
|
Loading…
Reference in New Issue