logger

package
v2.31.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 8, 2021 License: MIT Imports: 6 Imported by: 0

README

Logger grpc interceptor

This package contains Unary and Streaming grpc interceptor for Logger. Please refer to instructions below for datails usage

Unary Server Interceptor

import(
    ...
    "github.com/kitabisa/perkakas/v2/grpcinterceptor/logger"
    ...
)

func main(){
	lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", 50051))
	if err != nil {
		opt.Logger.Error(fmt.Sprintf("failed to listen %s:%d", host, port), err, nil)
	}

    // use the interceptor
	grpcServer := grpc.NewServer(
		grpc.UnaryInterceptor(
			logger.UnaryServerInterceptor,
		),
	)

    // initialize grpc handler
	grpcHandler := grpcHandler.NewFlagHandler(opt)

	pb.RegisterFlagServer(grpcServer, grpcHandler)
	grpc_health_v1.RegisterHealthServer(grpcServer, health.NewServer())

	opt.Logger.Info(fmt.Sprintf("GRPC serve at %s:%d", host, port), nil)

	grpcServer.Serve(lis)
}
Using Unary Server Interceptor with custom RequestID context key
import(
    ...
    "github.com/kitabisa/perkakas/v2/grpcinterceptor/logger"
    ...
)

func main(){
	lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", 50051))
	if err != nil {
		opt.Logger.Error(fmt.Sprintf("failed to listen %s:%d", host, port), err, nil)
	}

    // initialize logger interceptor 
    // with requestid context key options
    interceptor := logger.NewInterceptor(
		WithRequestIDContextKey("custom-requestid-context-key"),
	)
    
    // use the interceptor
	grpcServer := grpc.NewServer(
		grpc.UnaryInterceptor(
			interceptor.UnaryServerInterceptor,
		),
	)

    // initialize grpc handler
	grpcHandler := grpcHandler.NewFlagHandler(opt)

	pb.RegisterFlagServer(grpcServer, grpcHandler)
	grpc_health_v1.RegisterHealthServer(grpcServer, health.NewServer())

	opt.Logger.Info(fmt.Sprintf("GRPC serve at %s:%d", host, port), nil)

	grpcServer.Serve(lis)
}

Streaming Server Interceptor

import(
    ...
    "github.com/kitabisa/perkakas/v2/grpcinterceptor/logger"
    ...
)

func main(){
	lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", 50051))
	if err != nil {
		opt.Logger.Error(fmt.Sprintf("failed to listen %s:%d", host, port), err, nil)
	}

    // use the interceptor
	grpcServer := grpc.NewServer(
		grpc.StreamInterceptor(
			logger.StreamingServerInterceptor,
		),
	)

    // initialize grpc handler
	grpcHandler := grpcHandler.NewFlagHandler(opt)

	pb.RegisterFlagServer(grpcServer, grpcHandler)
	grpc_health_v1.RegisterHealthServer(grpcServer, health.NewServer())

	opt.Logger.Info(fmt.Sprintf("GRPC serve at %s:%d", host, port), nil)

	grpcServer.Serve(lis)
}
Using Streaming Server Interceptor with custom RequestID context key
import(
    ...
    "github.com/kitabisa/perkakas/v2/grpcinterceptor/logger"
    ...
)

func main(){
	lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", 50051))
	if err != nil {
		opt.Logger.Error(fmt.Sprintf("failed to listen %s:%d", host, port), err, nil)
	}

    // initialize logger interceptor 
    // with requestid context key options
    interceptor := logger.NewInterceptor(
		WithRequestIDContextKey("custom-requestid-context-key"),
	)
    
    // use the interceptor
	grpcServer := grpc.NewServer(
		grpc.StreamInterceptor(
			interceptor.StreamingServerInterceptor,
		),
	)

    // initialize grpc handler
	grpcHandler := grpcHandler.NewFlagHandler(opt)

	pb.RegisterFlagServer(grpcServer, grpcHandler)
	grpc_health_v1.RegisterHealthServer(grpcServer, health.NewServer())

	opt.Logger.Info(fmt.Sprintf("GRPC serve at %s:%d", host, port), nil)

	grpcServer.Serve(lis)
}

Using both Unary and Streaming server interceptor

import(
    ...
    "github.com/kitabisa/perkakas/v2/grpcinterceptor/logger"
    ...
)

func main(){
	lis, err := net.Listen("tcp", fmt.Sprintf("%s:%d", "0.0.0.0", 50051))
	if err != nil {
		opt.Logger.Error(fmt.Sprintf("failed to listen %s:%d", host, port), err, nil)
	}

    // use the interceptor
	grpcServer := grpc.NewServer(
		grpc.UnaryInterceptor(
			logger.UnaryServerInterceptor,
		),
        grpc.StreamInterceptor(
			logger.StreamingServerInterceptor,
		),
	)

    // initialize grpc handler
	grpcHandler := grpcHandler.NewFlagHandler(opt)

	pb.RegisterFlagServer(grpcServer, grpcHandler)
	grpc_health_v1.RegisterHealthServer(grpcServer, health.NewServer())

	opt.Logger.Info(fmt.Sprintf("GRPC serve at %s:%d", host, port), nil)

	grpcServer.Serve(lis)
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Init added in v2.28.0

func Init()

Init creating default interceptor instance the reason of not using go init() is to prevent unwanted extra logger interceptor instance when using this interceptor without default instance

func StreamingServerInterceptor added in v2.28.0

func StreamingServerInterceptor(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

StreamingServerInterceptor calling logger StreamingServerInterceptor with default interceptor instance

func UnaryServerInterceptor

func UnaryServerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error)

UnaryServerInterceptor calling logger UnaryServerInterceptor with default interceptor instance

Types

type Interceptor added in v2.28.0

type Interceptor struct {
	// contains filtered or unexported fields
}

func NewInterceptor added in v2.28.0

func NewInterceptor(opts ...Options) *Interceptor

func (*Interceptor) StreamingServerInterceptor added in v2.28.0

func (i *Interceptor) StreamingServerInterceptor(srv interface{}, stream grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

func (*Interceptor) UnaryServerInterceptor added in v2.28.0

func (i *Interceptor) UnaryServerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp interface{}, err error)

type Options added in v2.28.0

type Options func(*Interceptor)

func WithRequestIDContextKey added in v2.28.0

func WithRequestIDContextKey(key string) Options

WithRequestIDContextKey set requestID context value key. provides an option to use this interceptor with context value key other than "X-Ktbs-Request-ID"

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL