Simple gem that logs your HTTP api requests just like database queries
gem install http_logger
require 'http_logger'
HttpLogger.configure do |c|
# defaults to Rails.logger if Rails is defined
c.logger = Logger.new(LOGFILE)
# Default: true
c.colorize = true
# Ignore patterns (e.g., URLs to ignore)
c.ignore = [/newrelic\.com/]
# Default: false
c.log_headers = false
# Default: true
c.log_request_body = false
# Default: true
c.log_response_body = false
# Desired log level as a symbol. Default: :debug
c.level = :info
# Change default truncate limit. Default: 5000
c.collapse_body_limit = 5000
end
Net::HTTP has a builtin logger that can be set via #set_debug_output. This method is only available at the instance level and it is not always accessible if used inside of a library. Also output of builtin debugger is not formed well for API debug purposes.
If you are using Net::HTTP#request hackers like FakeWeb make sure you require http_logger after all others because http_logger always calls "super", rather than others.