lib/faraday/response/logger.rb
require 'forwardable' module Faraday class Response::Logger < Response::Middleware extend Forwardable def initialize(app, logger = nil) super(app) @logger = logger || begin require 'logger' ::Logger.new(STDOUT) end end def_delegators :@logger, :debug, :info, :warn, :error, :fatal def call(env) info "#{env[:method]} #{env[:url].to_s}" debug('request') { dump_headers env[:request_headers] } super end def on_complete(env) info('Status') { env[:status].to_s } debug('response') { dump_headers env[:response_headers] } end private def dump_headers(headers) headers.map { |k, v| "#{k}: #{v.inspect}" }.join("\n") end end end