class Jess::HttpClient::LoggingDecorator
Wraps a Net::HTTP object to log all requests to a given Logger object.
Attributes
logger[R]
Public Class Methods
new(logger, http)
click to toggle source
Calls superclass method
# File lib/jess/http_client/logging_decorator.rb, line 7 def initialize(logger, http) super(http) @logger = logger end
Public Instance Methods
request(req)
click to toggle source
Calls superclass method
# File lib/jess/http_client/logging_decorator.rb, line 12 def request(req) return super if logger.nil? log_request(req) response = super log_response(response, req.uri) response rescue Error => e logger&.error(e.to_s) raise end
Private Instance Methods
log_request(req)
click to toggle source
# File lib/jess/http_client/logging_decorator.rb, line 28 def log_request(req) logger.debug { "#{req.method} #{req.uri}" } end
log_response(response, uri)
click to toggle source
# File lib/jess/http_client/logging_decorator.rb, line 32 def log_response(response, uri) logger.debug do "Received #{response_desc(response)} from #{uri}" end end
response_desc(response)
click to toggle source
# File lib/jess/http_client/logging_decorator.rb, line 38 def response_desc(response) content_type = response.content_type desc = "" desc << if response.body && response.body.length "#{response.body.length} bytes" else "response" end desc << " (#{content_type})" if content_type desc end