class Nav::Logger::HTTPartyFormatter
Constants
- IN
- OUT
Attributes
level[RW]
logger[RW]
messages[RW]
request[R]
response[R]
Public Class Methods
new(logger, level)
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 9 def initialize(logger, level) @logger = logger @level = level.to_sym @messages = [] end
Public Instance Methods
format(request, response)
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 15 def format(request, response) @request = request @response = response library_line = caller.detect{ |line| line !~ /httparty/ } log_request log_response logger.send level, messages.join("\n"), caller: library_line end
Private Instance Methods
log(direction, line = "")
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 83 def log(direction, line = "") messages << "#{direction} #{line}" end
log_hash(hash)
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 79 def log_hash(hash) hash.each { |k, v| log(OUT, "#{k}: #{v}") } end
log_headers()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 58 def log_headers return unless request.options[:headers] && request.options[:headers].size > 0 log OUT, "Headers: " log_hash request.options[:headers] end
log_query()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 65 def log_query return unless request.options[:query] log OUT, "Query: " log_hash request.options[:query] end
log_request()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 32 def log_request log_url log_headers log_query log OUT, request.raw_body if request.raw_body log OUT end
log_response()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 40 def log_response log IN, "HTTP/#{response.http_version} #{response.code}" log_response_headers log IN, "\n#{response.body}" log IN end
log_response_headers()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 72 def log_response_headers headers = response.respond_to?(:headers) ? response.headers : response response.each_header do |response_header| log IN, "#{response_header.capitalize}: #{headers[response_header]}" end end
log_url()
click to toggle source
# File lib/nav/logger/httparty_formatter.rb, line 47 def log_url http_method = request.http_method.name.split("::").last.upcase uri = if request.options[:base_uri] request.options[:base_uri] + request.path.path else request.path.to_s end log OUT, "#{http_method} #{uri}" end