【问题标题】:Logging RestClient in a Rails app在 Rails 应用程序中记录 RestClient
【发布时间】:2012-04-09 03:10:13
【问题描述】:

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

要启用日志记录,您可以

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

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

RestClient.get "http://some/resource"

=> 200 确定 |文本/html 250 字节

RestClient.put "http://some/resource", "payload"

=> 401 未经授权 |应用程序/xml 340 字节

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 或 RestClient.log = $stdout
    • 将其添加到config/initializers/的文件中
    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      ::RestClient.log = Rails.logger

      【讨论】:

      • 可以添加到config/initializers/rest_client.rb全局启用
      【解决方案4】:

      你可以使用这个宝石:

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

      只需将“gem 'rest-client-logger'”添加到您的 Gemfile 即可开箱即用。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 2014-02-06
          • 2010-12-08
          • 2013-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-02
          相关资源
          最近更新 更多