Sha256: 49f241ba242e75107d4e2e50ba75e1ac4e26dedfe6605d0465e1bce50cd699e4
Contents?: true
Size: 1.13 KB
Versions: 5
Compression:
Stored size: 1.13 KB
Contents
# frozen_string_literal: true require "savon/log_message" module Savon class RequestLogger def initialize(globals) @globals = globals end def log(request, &http_request) log_request(request) if log? response = http_request.call log_response(response) if log? response end def logger @globals[:logger] end def log? @globals[:log] end def log_headers? @globals[:log_headers] end private 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 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 def headers_to_log(headers) headers.map { |key, value| "#{key}: #{value}" }.join("\n") end def body_to_log(body) LogMessage.new(body, @globals[:filters], @globals[:pretty_print_xml]).to_s end end end
Version data entries
5 entries across 5 versions & 1 rubygems