Logging RestClient in a Rails app
logging, rest-client, ruby-on-rails
Solution
from: https://gist.github.com/jeremy/1383337
require 'restclient'
# RestClient logs using << which isn't supported by the Rails logger,
# so wrap it up with a little proxy object.
RestClient.log =
Object.new.tap do |proxy|
def proxy.<<(message)
Rails.logger.info message
end
end
Problem
I'd like to debug the request my Rails app makes with RestClient. The RestClient docs say: To enable logging you can set RestClient.log with a ruby Logger or set an environment variable to avoid modifying the code (in this case you can use a file name, “stdout” or “stderr”): $ RESTCLIENT_LOG=stdout path/to/my/program Either produces logs like this: RestClient.get "http://some/resource" => 200 OK | text/html 250 bytes RestClient.put "http://some/resource", "payload" => 401 Unauthorized | application/xml 340 bytes Note that these logs are valid Ruby, so you can paste them into the restclient shell or a >script to replay your sequence of rest calls. How do I do get these logs included in my Rails apps log folder?