Class: ComplyanceSDK::HTTP::LoggingMiddleware

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/complyance_sdk/http/logging_middleware.rb

Overview

Faraday middleware for request/response logging

Instance Method Summary collapse

Constructor Details

#initialize(app, log_level = :info) ⇒ LoggingMiddleware

Initialize the middleware

Parameters:

  • app (Object)

    The Faraday app

  • log_level (Symbol) (defaults to: :info)

    The log level (:debug, :info, :warn, :error)



13
14
15
16
17
18
# File 'lib/complyance_sdk/http/logging_middleware.rb', line 13

def initialize(app, log_level = :info)
  super(app)
  @log_level = log_level
  @logger = Logger.new($stdout)
  @logger.level = logger_level_constant(log_level)
end

Instance Method Details

#call(env) ⇒ Object

Process the request

Parameters:

  • env (Hash)

    The request environment



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/complyance_sdk/http/logging_middleware.rb', line 23

def call(env)
  start_time = Time.now
  
  log_request(env)
  
  @app.call(env).on_complete do |response_env|
    end_time = Time.now
    duration = ((end_time - start_time) * 1000).round(2)
    
    log_response(response_env, duration)
  end
end