Class: LoogiHttp::Middleware::LogRequest

Inherits:
Faraday::Middleware
  • Object
show all
Defined in:
lib/loogi_http/middleware/log_request.rb

Overview

Faraday middleware to log request to ‘Logger`.

Instance Method Summary collapse

Constructor Details

#initialize(app, logger:, level: :info) ⇒ LogRequest

Returns a new instance of LogRequest.

Parameters:

  • logger (Logger)

    Logger instance to log to

  • level (Symbol | String) (defaults to: :info)

    Log level to use



9
10
11
12
13
# File 'lib/loogi_http/middleware/log_request.rb', line 9

def initialize(app, logger:, level: :info)
  super app
  @level = level
  @logger = logger
end

Instance Method Details

#call(env) ⇒ Faraday::Request

Log the following for every request made:

  • host

  • HTTP method

  • uri

  • status

  • duration

If an exception is raised, log the exception and backtrace.

Parameters:

  • env (Faraday::Env)

Returns:

  • (Faraday::Request)


27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/loogi_http/middleware/log_request.rb', line 27

def call(env)
  start_time = Time.now
  exception = nil
  @app.call env
rescue StandardError => e
  exception = e
  raise
ensure
  duration = Time.now - start_time
  log_message env, duration
  log_exception(exception) if exception
end