在Rails应用程序中记录RestClient

时间:2012-04-09 03:10:14

标签: ruby-on-rails logging rest-client

我想调试我的Rails应用程序使用RestClient创建的请求。 RestClient文档说:

  

要启用日志记录,您可以

     

使用ruby Logger设置RestClient.log   或设置环境变量以避免修改代码(在这种情况下,您可以使用文件名,“stdout”或“stderr”):

     

$ RESTCLIENT_LOG = stdout path / to / my / program   要么产生这样的日志:

     

RestClient.get“http://some/resource

     

=> 200 OK | text / html 250 bytes

     

RestClient.put“http://some/resource”,“payload”

     

=> 401未经授权| application / xml 340 bytes

     

请注意,这些日志是有效的Ruby,因此您可以将它们粘贴到restclient shell或>脚本中,以重放您的休息调用序列。

如何将这些日志包含在我的Rails应用程序日志文件夹中?

5 个答案:

答案 0 :(得分:13)

来自: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

答案 1 :(得分:4)

config/initializers中创建文件:
RestClient.log ='log / a_log_file.log'
或者只是把最后一个放在控制台

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

答案 2 :(得分:1)

你可以使用这个宝石:

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

只需添加&#34; gem&#39; rest-client-logger&#39;&#34;即可开箱即用。到您的Gemfile。

答案 3 :(得分:0)

这对我有用,可以在RestClient 1.8和Rails 4.2.1上运行:

::RestClient.log = Rails.logger

答案 4 :(得分:-3)

可能是这样:RestClient.log = Rails.logger