Sha256: 4001c7e1183c42094b39c31e936dab6fc1f81da7c9a1e3a4d7bdd9511d308a3c

Contents?: true

Size: 1.31 KB

Versions: 26

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

require 'grpc_kit'
require_relative 'call_stream'

class LoggingInterceptor < GRPC::ClientInterceptor
  def request_response(request: nil, method: nil, **)
    now = Time.now.to_i
    GrpcKit.logger.info("Started request #{request}, method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield.tap do
      GrpcKit.logger.info("Elapsed Time: #{Time.now.to_i - now}")
    end
  end

  def client_streamer(call: nil, method: nil, **)
    GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(LoggingStream.new(call))
  end

  def server_streamer(call: nil, method: nil, **)
    GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(LoggingStream.new(call))
  end

  def bidi_streamer(call: nil, method: nil, **)
    GrpcKit.logger.info("Started request method=#{method.name}, service_name=#{method.receiver.class.service_name}")
    yield(LoggingStream.new(call))
  end

  class LoggingStream < CallStream
    def send_msg(msg)
      GrpcKit.logger.info("logging interceptor send #{msg.inspect}")
      super
    end

    def recv
      super.tap do |v|
        GrpcKit.logger.info("logging interceptor recv #{v.inspect}")
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 2 rubygems

Version Path
grpc_kit-0.5.1 examples/interceptors/client_logging_interceptor.rb
griffin-0.3.0 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.5.0 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.4.0 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.9 examples/interceptors/client_logging_interceptor.rb
griffin-0.2.4 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.8 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.7 examples/interceptors/client_logging_interceptor.rb
griffin-0.2.3 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.6 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.5 examples/interceptors/client_logging_interceptor.rb
griffin-0.2.2 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.4 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.3 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.2 examples/interceptors/client_logging_interceptor.rb
griffin-0.2.1 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.1 examples/interceptors/client_logging_interceptor.rb
griffin-0.2.0 examples/interceptors/client_logging_interceptor.rb
grpc_kit-0.3.0 examples/interceptors/client_logging_interceptor.rb
griffin-0.1.9 examples/interceptors/client_logging_interceptor.rb