Sha256: 567ff1c3d1f3c0f43bb7cbabb77506adbabcd2fa4075a82514ef032c4884a433

Contents?: true

Size: 1.15 KB

Versions: 34

Compression:

Stored size: 1.15 KB

Contents

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

  module Logging
    
    def self.skip_api_logging=(val)
      @skip_api_logging=val
    end
    
    def self.skip_api_logging
      @skip_api_logging
    end
    
    
    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) unless skip_api_logging
        result
      else
        log_info(message, dump) unless skip_api_logging
        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

34 entries across 34 versions & 8 rubygems

Version Path
al-facebooker-1.0.12.1 lib/facebooker/logging.rb
al-facebooker-1.0.12 lib/facebooker/logging.rb
al-facebooker-1.0.9 lib/facebooker/logging.rb
cwninja-facebooker-1.0.8 lib/facebooker/logging.rb
djanowski-facebooker-1.0.1 lib/facebooker/logging.rb
djanowski-facebooker-1.0.10 lib/facebooker/logging.rb
djanowski-facebooker-1.0.11 lib/facebooker/logging.rb
djanowski-facebooker-1.0.12 lib/facebooker/logging.rb
djanowski-facebooker-1.0.2 lib/facebooker/logging.rb
djanowski-facebooker-1.0.4 lib/facebooker/logging.rb
djanowski-facebooker-1.0.7 lib/facebooker/logging.rb
djanowski-mmangino-facebooker-1.0.4 lib/facebooker/logging.rb
mmangino-facebooker-1.0.10 lib/facebooker/logging.rb
mmangino-facebooker-1.0.11 lib/facebooker/logging.rb
mmangino-facebooker-1.0.12 lib/facebooker/logging.rb
mmangino-facebooker-1.0.13 lib/facebooker/logging.rb
mmangino-facebooker-1.0.14 lib/facebooker/logging.rb
mmangino-facebooker-1.0.15 lib/facebooker/logging.rb
mmangino-facebooker-1.0.16 lib/facebooker/logging.rb
mmangino-facebooker-1.0.19 lib/facebooker/logging.rb