Logging RestClient in a Rails app

跟風遠走 提交于 2019-12-19 19:24:49

问题


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?


回答1:


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



回答2:


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




回答3:


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.




回答4:


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

::RestClient.log = Rails.logger




回答5:


may be so: RestClient.log = Rails.logger



来源:https://stackoverflow.com/questions/10068496/logging-restclient-in-a-rails-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!