class Savon::RequestLogger

Public Class Methods

new(globals) click to toggle source
# File lib/savon/request_logger.rb, line 7
def initialize(globals)
  @globals = globals
end

Public Instance Methods

log(request, &http_request) click to toggle source
# File lib/savon/request_logger.rb, line 11
def log(request, &http_request)
  log_request(request) if log?
  response = http_request.call
  log_response(response) if log?

  response
end
log?() click to toggle source
# File lib/savon/request_logger.rb, line 23
def log?
  @globals[:log]
end
log_headers?() click to toggle source
# File lib/savon/request_logger.rb, line 27
def log_headers?
  @globals[:log_headers]
end
logger() click to toggle source
# File lib/savon/request_logger.rb, line 19
def logger
  @globals[:logger]
end

Private Instance Methods

body_to_log(body) click to toggle source
# File lib/savon/request_logger.rb, line 49
def body_to_log(body)
  LogMessage.new(body, @globals[:filters], @globals[:pretty_print_xml]).to_s
end
headers_to_log(headers) click to toggle source
# File lib/savon/request_logger.rb, line 45
def headers_to_log(headers)
  headers.map { |key, value| "#{key}: #{value}" }.join("\n")
end
log_request(request) click to toggle source
# File lib/savon/request_logger.rb, line 33
def log_request(request)
  logger.info  { "SOAP request: #{request.url}" }
  logger.info  { headers_to_log(request.headers) } if log_headers?
  logger.debug { body_to_log(request.body) }
end
log_response(response) click to toggle source
# File lib/savon/request_logger.rb, line 39
def log_response(response)
  logger.info  { "SOAP response (status #{response.code})" }
  logger.debug { headers_to_log(response.headers) } if log_headers?
  logger.debug { body_to_log(response.body) }
end