Documentation ¶
Overview ¶
Package zerolog provides a small adapter required to use zerolog in logging gRPC middlewares. Please see examples for examples of use.
Example (InitializationWithCustomLevels) ¶
package main import ( "os" grpczerolog "github.com/grpc-ecosystem/go-grpc-middleware/providers/zerolog/v2" "github.com/rs/zerolog" "google.golang.org/grpc" middleware "github.com/grpc-ecosystem/go-grpc-middleware/v2" "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/logging" ) var customFunc logging.CodeToLevel func main() { // Logger is used, allowing pre-definition of certain fields by the user. logger := zerolog.New(os.Stderr) // Shared options for the logger, with a custom gRPC code to log level function. opts := []logging.Option{ logging.WithLevels(customFunc), } // Create a server, make sure we put the tags context before everything else. _ = grpc.NewServer( middleware.WithUnaryServerChain( logging.UnaryServerInterceptor(grpczerolog.InterceptorLogger(logger), opts...), ), middleware.WithStreamServerChain( logging.StreamServerInterceptor(grpczerolog.InterceptorLogger(logger), opts...), ), ) }
Output:
Example (InitializationWithDurationFieldOverride) ¶
package main import ( "os" grpczerolog "github.com/grpc-ecosystem/go-grpc-middleware/providers/zerolog/v2" "github.com/rs/zerolog" "google.golang.org/grpc" middleware "github.com/grpc-ecosystem/go-grpc-middleware/v2" "github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/logging" ) var customDurationToFields logging.DurationToFields func main() { // Logger is used, allowing pre-definition of certain fields by the user. logger := zerolog.New(os.Stderr) // Shared options for the logger, with a custom duration to log field function. opts := []logging.Option{ logging.WithDurationField(customDurationToFields), } // Create a server, make sure we put the tags context before everything else. _ = grpc.NewServer( middleware.WithUnaryServerChain( logging.UnaryServerInterceptor(grpczerolog.InterceptorLogger(logger), opts...), ), middleware.WithStreamServerChain( logging.StreamServerInterceptor(grpczerolog.InterceptorLogger(logger), opts...), ), ) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
Click to show internal directories.
Click to hide internal directories.