Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require "net/http"
- class Net::HTTP
- alias_method :request_without_log, :request
- def request(request, body = nil, &block)
- time = Time.now
- response = request_without_log(request, body, &block)
- response
- ensure
- if self.started?
- url = "http#{"s" if self.use_ssl?}://#{self.address}:#{self.port}#{request.path}"
- ofset = Time.now - time
- rails_log("HTTP #{request.method} (%0.2fms)" % (ofset * 1000), url)
- rails_log("POST params", request.body) if request.is_a?(::Net::HTTP::Post)
- if defined?(response) && response
- rails_log("Response status", "#{response.class} (#{response.code})")
- body = response.body
- rails_log("Response body", body) unless body.is_a?(Net::ReadAdapter)
- end
- end
- end
- def rails_log(message, dump)
- if defined?(Rails)
- Rails.logger.debug(format_log_entry(message, dump))
- end
- end
- def format_log_entry(message, dump = nil)
- if ActiveRecord::Base.colorize_logging
- message_color, dump_color = "4;32;1", "0;1"
- log_entry = " \e[#{message_color}m#{message}\e[0m "
- log_entry << "\e[#{dump_color}m%#{String === dump ? 's' : 'p'}\e[0m" % dump if dump
- log_entry
- else
- "%s %s" % [message, dump]
- end
- end
- end
Add Comment
Please, Sign In to add comment