class HTTParty::Logger::CurlFormatter
:nodoc:
def format(request, response)
def format(request, response) @request = request @response = response log_request log_response logger.send level, messages.join("\n") end
def initialize(logger, level)
def initialize(logger, level) @logger = logger @level = level.to_sym @messages = [] end
def log(direction, line = '')
def log(direction, line = '') messages << "[#{TAG_NAME}] [#{time}] #{direction} #{line}" end
def log_hash(hash)
def log_hash(hash) hash.each { |k, v| log(OUT, "#{k}: #{v}") } end
def log_headers
def log_headers return unless request.options[:headers] && request.options[:headers].size > 0 log OUT, 'Headers: ' log_hash request.options[:headers] end
def log_query
def log_query return unless request.options[:query] log OUT, 'Query: ' log_hash request.options[:query] end
def log_request
def log_request log_url log_headers log_query log OUT, request.raw_body if request.raw_body log OUT end
def log_response
def log_response log IN, "HTTP/#{response.http_version} #{response.code}" log_response_headers log IN, "\n#{response.body}" log IN end
def log_response_headers
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
def log_url
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
def time
def time @time ||= Time.now.strftime("%Y-%m-%d %H:%M:%S %z") end