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...),
),
)
}
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...),
),
)
}
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.