6

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?

user94154
  • 16,176
  • 20
  • 77
  • 116

5 Answers5

15

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
nessur
  • 1,143
  • 1
  • 11
  • 18
5

Create a file in config/initializers:
RestClient.log = 'log/a_log_file.log'
Or just put last in console

https://github.com/adelevie/rest-client/commit/5a7ed325eaa091809141d3ef6e31087569614e9d

Dzmitry
  • 436
  • 6
  • 13
1

This worked for me, running on RestClient 1.8 and Rails 4.2.1:

::RestClient.log = Rails.logger

Saleh Rastani
  • 184
  • 1
  • 8
0

You can use this gem:

https://github.com/uswitch/rest-client-logger

It works out of the box just by adding "gem 'rest-client-logger'" to your Gemfile.

Justin D.
  • 4,946
  • 5
  • 36
  • 69
PoloSoares
  • 215
  • 2
  • 6
-3

may be so: RestClient.log = Rails.logger

walla
  • 1,087
  • 8
  • 9