class Upfluence::Utils::Thrift::Middleware::RequestLogger

Public Class Methods

new(app, logger) click to toggle source
# File lib/upfluence/utils/thrift/middleware/request_logger.rb, line 6
def initialize(app, logger)
  @app = app
  @logger = logger
end

Public Instance Methods

method_missing(method, *args, &block) click to toggle source
# File lib/upfluence/utils/thrift/middleware/request_logger.rb, line 11
def method_missing(method, *args, &block)
  args_str = args.map(&:to_s).join(',')[0..99]
  t0 = Time.now

  @logger.info(
    "Running method `#{method}` with args [#{args_str}]"
  )

  result = @app.send method, *args, &block

  @logger.info(
    "Finished method `#{method}` with args [#{args_str}]. Took: #{time_since(t0)}ms"
  )

  result
rescue => e
  @logger.error(
    "Finished method `#{method}` with args [#{args_str}] failed: #{e.class}. Took: #{time_since(t0)}ms"
  )
  raise e
end

Private Instance Methods

time_since(t0) click to toggle source
# File lib/upfluence/utils/thrift/middleware/request_logger.rb, line 35
def time_since(t0)
  ((Time.now - t0) * 1000).to_i
end