Documentation ¶
Overview ¶
Package ctxzerolog is a ctxlogger that is backed by zerolog.
It accepts a user-configured `zerolog.Context` that will be used for logging. The same Context will be populated into the `context.Context` passed into gRPC handler code.
You can use `ctxzerolog.Extract` to log into a request-scoped Context instance in your handler code.
As `ctxzerolog.Extract` will iterate on all tags from `grpc_ctxtags` it is therefore expensive so it is advised that you extract once at the start of the function from the context and reuse it for the remainder of the function (see examples).
Please see examples and tests for examples of use.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Extract ¶
Extract takes the call-scoped zerolog.Context from ctxzerolog middleware.
If the ctxzerolog middleware wasn't used, a no-op `zerolog.Context` is returned. This makes it safe to use regardless.
Example (Unary) ¶
Simple unary handler that adds custom fields to the requests's context. These will be used for all log statements.
package main import ( "context" grpc_ctxtags "github.com/grpc-ecosystem/go-grpc-middleware/tags" "github.com/winebarrel/grpc-zerolog/ctxzerolog" ) func main() { ctx := context.Background() // setting tags will be added to the logger as log fields grpc_ctxtags.Extract(ctx).Set("custom_tags.string", "something").Set("custom_tags.int", 1337) // Extract a single request-scoped zerolog.Context and log messages. l := ctxzerolog.Extract(ctx).Logger() l.Info().Msg("some ping") l.Info().Msg("another ping") }
Output:
Types ¶
This section is empty.