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