Sha256: 1e78ccec154d5a1dadcdc1fc94cdfaecb4a6ec4d2a23173cfc1e0b7a14fb1f24

Contents?: true

Size: 900 Bytes

Versions: 18

Compression:

Stored size: 900 Bytes

Contents

# frozen_string_literal: true

require 'forwardable'

module Frodo
  class Middleware::Logger < Faraday::Response::Middleware
    extend Forwardable

    def initialize(app, logger, options)
      super(app)
      @options = options
      @logger = logger || begin
        require 'logger'
        ::Logger.new(STDOUT)
      end
    end

    def_delegators :@logger, :debug, :info, :warn, :error, :fatal

    def call(env)
      debug('request') do
        dump url: env[:url].to_s,
          method: env[:method],
          headers: env[:request_headers],
          body: env[:body]
      end
      super
    end

    def on_complete(env)
      debug('response') do
        dump status: env[:status].to_s,
          headers: env[:response_headers],
          body: env[:body]
      end
    end

    def dump(hash)
      "\n" + hash.map { |k, v| "  #{k}: #{v.inspect}" }.join("\n")
    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
frodo-0.12.8 lib/frodo/middleware/logger.rb
frodo-0.12.7 lib/frodo/middleware/logger.rb
frodo-0.12.6 lib/frodo/middleware/logger.rb
frodo-0.12.5 lib/frodo/middleware/logger.rb
frodo-0.12.4 lib/frodo/middleware/logger.rb
frodo-0.12.2 lib/frodo/middleware/logger.rb
frodo-0.12.1 lib/frodo/middleware/logger.rb
frodo-0.12.0 lib/frodo/middleware/logger.rb
frodo-0.11.0 lib/frodo/middleware/logger.rb
frodo-0.10.8 lib/frodo/middleware/logger.rb
frodo-0.10.7 lib/frodo/middleware/logger.rb
frodo-0.10.6 lib/frodo/middleware/logger.rb
frodo-0.10.5 lib/frodo/middleware/logger.rb
frodo-0.10.4 lib/frodo/middleware/logger.rb
frodo-0.10.3 lib/frodo/middleware/logger.rb
frodo-0.10.2 lib/frodo/middleware/logger.rb
frodo-0.10.1 lib/frodo/middleware/logger.rb
frodo-0.10.0 lib/frodo/middleware/logger.rb