Sha256: cb48dc1e5d1b0df076b44e6b1a33bf1129433a36e92c1e8ff30da54a9af2e52d

Contents?: true

Size: 1022 Bytes

Versions: 8

Compression:

Stored size: 1022 Bytes

Contents

module VkontakteApi
  # Faraday middleware for logging requests and responses.
  # 
  # It's behaviour depends on the logging options in the configuration.
  class Logger < Faraday::Response::Middleware
    # Creates a middleware instance.
    # The logger is set from `:logger` configuration option.
    def initialize(app)
      super(app)
      @logger = VkontakteApi.logger
    end
    
    # Logs the request if needed.
    # @param [Hash] env Request data.
    def call(env)
      if VkontakteApi.log_requests?
        @logger.debug "#{env[:method].to_s.upcase} #{env[:url].to_s}"
      end
      
      super
    end
    
    # Logs the response (successful or not) if needed.
    # @param [Hash] env Response data.
    def on_complete(env)
      if env[:body].error?
        @logger.warn env[:raw_body]  if VkontakteApi.log_errors?
      else
        @logger.debug env[:raw_body] if VkontakteApi.log_responses?
      end
    end
  end
end

Faraday.register_middleware :response, :vk_logger => VkontakteApi::Logger

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
vkontakte_api-1.0.4 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.3 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.2 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.1 lib/vkontakte_api/logger.rb
vkontakte_api-1.0 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.rc3 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.rc2 lib/vkontakte_api/logger.rb
vkontakte_api-1.0.rc lib/vkontakte_api/logger.rb