Я действительно мог бы использовать что-то подобное, поэтому я прибегнул к переопределению класса ruby Net :: HTTP для вставки логов.Пока работает хорошо, хотя и не очень надежно.
module Net
class HTTP
alias_method(:orig_request, :request) unless method_defined?(:orig_request)
alias_method(:orig_connect, :connect) unless method_defined?(:orig_connect)
def request(req, body = nil, &block)
Rails.logger.debug("Sending: #{req.method} http://#{@address}:#{@port}#{req.path}")
Rails.logger.debug("Body: #{req.body}") unless req.body.nil?
orig_request(req, body, &block)
end
def connect
Rails.logger.debug("Connecting: #{@address}")
orig_connect
end
end
end
Это даст вам записи в журнале, подобные этому:
Connecting: www.flickr.com
Sending: GET http://www.flickr.com:80/photos/thilo/4301203/
Если более интересная версия этого представляет интерес (настраиваемый регистратор, подробности журнала, что угодно), я мог бы броситьэто в жемчужину, если ничего не существует (что я не могу себе представить :).Но для простых целей отладки этого должно быть достаточно.
Кстати, я проверял это только с ruby 1.9.2
EDIT
Я немного расширил этои упаковал его как драгоценный камень.Проверьте это в https://github.com/trusche/httplog. Записывает в любой экземпляр ruby Logger.Работает для меня с ruby 1.9.2 из консоли ruby и из приложения Rails 3.1 и имеет множество прохождений тестов rspec.Надеюсь, это поможет.