Class: FaradayMiddleware::HttpLogger

Inherits:
Faraday::Middleware
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/faraday_middleware/http_logger.rb

Overview

Log all request to logger, filter login and password

Instance Method Summary collapse

Constructor Details

#initialize(app, logger) ⇒ HttpLogger

Create middleware object

params app [Faraday::Adapter::NetHttp] faraday adapter params logger [Logger] middleware logger



15
16
17
18
# File 'lib/faraday_middleware/http_logger.rb', line 15

def initialize(app, logger)
  @app = app
  @logger = logger
end

Instance Method Details

#call(env) ⇒ Object

Log request to logger

Parameters:

  • env (Faraday::Env)

    middleware environment



24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/faraday_middleware/http_logger.rb', line 24

def call(env)
  start_time = Time.now
  info  { request_info(env) }
  debug { "Request headers: #{env[:request_headers].inspect}" }
  @app.call(env).on_complete do
    end_time = Time.now
    response_time = end_time - start_time
    info  { response_info(env, response_time) }
    debug { "Response headers: #{env[:response_headers].inspect}" }
    debug { "Response body: #{env[:body].delete("\n")}" }
  end
end