Class: NxtHttpClient::Logger

Inherits:
Object
  • Object
show all
Defined in:
lib/nxt_http_client/logger.rb

Instance Method Summary collapse

Constructor Details

#initialize(logger) ⇒ Logger

Returns a new instance of Logger.



3
4
5
# File 'lib/nxt_http_client/logger.rb', line 3

def initialize(logger)
  @logger = logger
end

Instance Method Details

#call(client, request, _response_handler, fire) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/nxt_http_client/logger.rb', line 7

def call(client, request, _response_handler, fire)
  started_at = now
  error = nil
  result = nil

  options = {
    client: client,
    started_at: started_at,
    request: request
  }

  begin
    result = fire.call
  rescue => e
    error = e
    options.merge!(error: e)
  ensure
    finished_at = now
    options.merge!(
      finished_at: now,
      elapsed_time_in_milliseconds: finished_at - started_at,
      response: request.response,
      http_status: request.response&.code
    )
  end

  logger.call(options)
  raise error if error

  result
end