Documentation ¶
Overview ¶
Package phuslog provides a small adapter required to use phuslog in logging gRPC middlewares. Please see examples for examples of use.
Example (InitializationWithCustomLevels) ¶
package main import ( grpcphuslog "github.com/grpc-ecosystem/go-grpc-middleware/providers/phuslog/v2" "github.com/phuslu/log" "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 := log.DefaultLogger.GrpcGateway() // 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(grpcphuslog.InterceptorLogger(logger), opts...), ), middleware.WithStreamServerChain( logging.StreamServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...), ), ) }
Output:
Example (InitializationWithDurationFieldOverride) ¶
package main import ( grpcphuslog "github.com/grpc-ecosystem/go-grpc-middleware/providers/phuslog/v2" "github.com/phuslu/log" "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 := log.DefaultLogger.GrpcGateway() // 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(grpcphuslog.InterceptorLogger(logger), opts...), ), middleware.WithStreamServerChain( logging.StreamServerInterceptor(grpcphuslog.InterceptorLogger(logger), opts...), ), ) }
Output:
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Logger ¶
type Logger struct {
log.GrpcGatewayLogger
}
Logger is a phuslog logging adapter compatible with logging middlewares.
func InterceptorLogger ¶
func InterceptorLogger(logger log.GrpcGatewayLogger) *Logger
InterceptorLogger is a phuslog.Logger to Logger adapter.
Click to show internal directories.
Click to hide internal directories.