@private
# File lib/aws/core/client_logging.rb, line 22 def log_client_request(name, options) response = nil time = Benchmark.measure do response = yield end if config.logger if options[:async] response.on_complete do log_client_request_on_success(name, options, response, time) end else log_client_request_on_success(name, options, response, time) end end response end
Summarizes long strings and adds file size information @private
# File lib/aws/core/client_logging.rb, line 42 def sanitize_options(options) sanitize_hash(options) end
# File lib/aws/core/client_logging.rb, line 47 def log severity, message config.logger.send(severity, message + "\n") if config.logger end
# File lib/aws/core/client_logging.rb, line 52 def log_client_request_on_success(method_name, options, response, time) status = response.http_response.status service = self.class.service_name pattern = "[AWS %s %s %.06f] %s(%s)" parts = [service, status, time.real, method_name, sanitize_options(options)] severity = :info if response.error pattern += " %s: %s" parts << response.error.class parts << response.error.message severity = :error end if response.cached pattern << " [CACHED]" end log(severity, pattern % parts) end
# File lib/aws/core/client_logging.rb, line 113 def sanitize_array array "[" + array.map { |v| sanitize_value(v) }.join(",") + "]" end
# File lib/aws/core/client_logging.rb, line 108 def sanitize_file file "#<File:#{file.path} (#{File.size(file.path)} bytes)>" end
# File lib/aws/core/client_logging.rb, line 118 def sanitize_hash hash hash.map do |k,v| "#{sanitize_value(k)}=>#{sanitize_value(v)}" end.sort.join(",") end
# File lib/aws/core/client_logging.rb, line 91 def sanitize_string str inspected = str.inspect if inspected.size > config.logger_truncate_strings_at summarize_string(str) else inspected end end
# File lib/aws/core/client_logging.rb, line 75 def sanitize_value(value) case value when Hash '{' + sanitize_hash(value) + '}' when Array sanitize_array(value) when File sanitize_file(value) when String sanitize_string(value) else value.inspect end end
# File lib/aws/core/client_logging.rb, line 101 def summarize_string str # skip the openning " string_start = str.inspect[1,config.logger_truncate_strings_at] "#<String \"#{string_start}\" ... (#{str.size} characters)>" end