Class: BWAPI::Response::Logger

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/bwapi/response/logger.rb

Overview

Brandwatch response middleware to handle logging

Instance Method Summary collapse

Constructor Details

#initialize(app, client) ⇒ Logger

Returns a new instance of Logger.



7
8
9
10
# File 'lib/bwapi/response/logger.rb', line 7

def initialize(app, client)
  super(app)
  @client = client
end

Instance Method Details

#call(env) ⇒ Object



19
20
21
22
23
# File 'lib/bwapi/response/logger.rb', line 19

def call(env)
  logger.info("Request: #{env.method.upcase} - #{env.url}")
  logger.debug("Request headers: #{dump_output(env.request_headers)}")
  super
end

#dump_output(object) ⇒ Object



30
31
32
# File 'lib/bwapi/response/logger.rb', line 30

def dump_output(object)
  object.map { |key, value| "#{key}: #{value.inspect}" }.join(', ')
end

#loggerObject



12
13
14
15
16
17
# File 'lib/bwapi/response/logger.rb', line 12

def logger
  @logger = @client.logger || begin
    require 'logger'
    ::Logger.new(STDOUT)
  end
end

#on_complete(env) ⇒ Object



25
26
27
28
# File 'lib/bwapi/response/logger.rb', line 25

def on_complete(env)
  logger.info("Response Status: #{env.status}")
  logger.debug("Response headers: #{dump_output(env.response_headers)}")
end