Sha256: 5295a6fe57c08dd3d6ac59345ee5a060e0ed3b2a81021a94033add922026e55a

Contents?: true

Size: 979 Bytes

Versions: 4

Compression:

Stored size: 979 Bytes

Contents

require 'benchmark'
module Facebooker
  @@logger = nil
  def self.logger=(logger)
    @@logger = logger
  end
  def self.logger
    @@logger
  end

  module Logging
    def self.log_fb_api(method, params)
      message = method # might customize later
      dump = format_fb_params(params)
      if block_given?
        result = nil
        seconds = Benchmark.realtime { result = yield }
        log_info(message, dump, seconds)
        result
      else
        log_info(message, dump)
        nil
      end
    rescue Exception => e
      exception = "#{e.class.name}: #{e.message}: #{dump}"
      log_info(message, exception)
      raise
    end
    
    def self.format_fb_params(params)
      params.map { |key,value| "#{key} = #{value}" }.join(', ')
    end
    
    def self.log_info(message, dump, seconds = 0)
      return unless Facebooker.logger
      log_message = "#{message} (#{seconds}) #{dump}"
      Facebooker.logger.debug(log_message)
    end
    
  end  
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
hashrocket-clearance-0.4.0 test/rails_root/vendor/plugins/facebooker/lib/facebooker/logging.rb
hashrocket-clearance-0.4.1 test/rails_root/vendor/plugins/facebooker/lib/facebooker/logging.rb
hashrocket-clearance-0.4.2 test/rails_root/vendor/plugins/facebooker/lib/facebooker/logging.rb
hashrocket-clearance-0.4.3 test/rails_root/vendor/plugins/facebooker/lib/facebooker/logging.rb