github.com/terraform-linters/tflint-plugin-sdk@v0.22.0/plugin/internal/interceptor/logging.go (about) 1 package interceptor 2 3 import ( 4 "context" 5 6 "github.com/terraform-linters/tflint-plugin-sdk/logger" 7 "google.golang.org/grpc" 8 ) 9 10 // RequestLogging is an interceptor for gRPC request logging. 11 // It outouts all request logs as "trace" level, and if an error occurs, 12 // it outputs the response as "error" level. 13 func RequestLogging(direction string) grpc.UnaryServerInterceptor { 14 return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { 15 logger.Trace("gRPC request", "direction", direction, "method", info.FullMethod, "req", req) 16 ret, err := handler(ctx, req) 17 if err != nil { 18 logger.Error("failed to gRPC request", "direction", direction, "method", info.FullMethod, "err", err) 19 } 20 return ret, err 21 } 22 }