我最近将我的 http 客户端切换到 faraday,一切都按预期工作。我有以下代码来创建连接:
@connection = Faraday.new(:url => base_url) do |faraday|
faraday.use Custim::Middleware
faraday.request :url_encoded # form-encode POST params
faraday.request :json
faraday.response :json, :content_type => /\bjson$/
faraday.response :logger
faraday.adapter Faraday.default_adapter # make requests with Net::HTTP
法拉第记录器帮助在控制台输出上打印所有日志。但是我不想在控制台输出上打印所有日志级别。如何将日志级别设置为只打印错误日志? .
我使用的是法拉第0.8.9版本
最佳答案
有一种方法,但似乎根本没有记录。我在 0.9.1 上试过这个,但它也应该在 0.8.9 上工作。
# provide your own logger
logger = Logger.new $stderr
logger.level = Logger::ERROR
Faraday.new(:url => base_url) do |faraday|
# ...
faraday.response :logger, logger
# ...
end
这是可行的,因为 faraday.response :logger
可能使用 Faraday::Response::Logger
创建了一个中间件,它具有以下构造函数:
def initialize(app, logger = nil)
奖金
在0.9.1中,构造函数签名为
def initialize(app, logger = nil, options = {})
该类还包含:DEFAULT_OPTIONS = { :bodies => false }
这可能意味着您可以在记录器之后传递一个 :bodies
选项来控制记录 body 。显然,您甚至可以使用 {bodies: {response: true}}
来记录响应主体而不是请求主体。
关于ruby-on-rails - faraday如何设置日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25875681/