Sha256: 746afd853cc3d7d9d1ca4995614849010170fcebba700512d21586ecbedfdd24

Contents?: true

Size: 1.08 KB

Versions: 85

Compression:

Stored size: 1.08 KB

Contents

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

  module Logging
    @skip_api_logging = nil
    class << self; attr_accessor :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.info(log_message)
    end
    
  end  
end

Version data entries

85 entries across 85 versions & 21 rubygems

Version Path
fs-facebooker-1.0.37 lib/facebooker/logging.rb
micahwedemeyer-facebooker-1.0.50 lib/facebooker/logging.rb
micahwedemeyer-facebooker-1.0.51 lib/facebooker/logging.rb
mmangino-facebooker-1.0.30 lib/facebooker/logging.rb
mmangino-facebooker-1.0.31 lib/facebooker/logging.rb
mmangino-facebooker-1.0.32 lib/facebooker/logging.rb
mmangino-facebooker-1.0.36 lib/facebooker/logging.rb
mmangino-facebooker-1.0.37 lib/facebooker/logging.rb
mmangino-facebooker-1.0.38 lib/facebooker/logging.rb
mmangino-facebooker-1.0.39 lib/facebooker/logging.rb
mmangino-facebooker-1.0.40 lib/facebooker/logging.rb
mmangino-facebooker-1.0.41 lib/facebooker/logging.rb
mmangino-facebooker-1.0.42 lib/facebooker/logging.rb
mmangino-facebooker-1.0.43 lib/facebooker/logging.rb
mmangino-facebooker-1.0.44 lib/facebooker/logging.rb
mmangino-facebooker-1.0.45 lib/facebooker/logging.rb
mmangino-facebooker-1.0.46 lib/facebooker/logging.rb
mmangino-facebooker-1.0.47 lib/facebooker/logging.rb
mmangino-facebooker-1.0.48 lib/facebooker/logging.rb
mmangino-facebooker-1.0.49 lib/facebooker/logging.rb