Sha256: 8efbd2cf72dc74ea0b32a04ad5849d0f52bbe1468fa204cf27cc3b3a31df7c08

Contents?: true

Size: 1.13 KB

Versions: 2

Compression:

Stored size: 1.13 KB

Contents

require 'logger'

require 'quandl/logger/version'

require "active_support"
require "active_support/inflector"
require "active_support/core_ext/hash"
require "active_support/core_ext/object"

require 'quandl/logger/outputs'

module Quandl
  class Logger
    class << self
  
      delegate :<<, :add, :close, :datetime_format, :datetime_format=, 
        :debug, :debug?, :error, :error?, :fatal, :fatal?, :info, :info?, 
        :log, :unknown, :warn, :warn?, 
        # to logger, allowing nil
        to: :logger, allow_nil: true
        
      def logger
        @@logger if defined?(@@logger)
      end
      
      def use(value)
        return use_file(value) if value.kind_of?(String)
        @@logger = value
      end
      
      def info_with_elapsed(message=nil, &block)
        timer = Time.now
        result = block.call
        info("#{message} (#{timer.elapsed.microseconds}ms)")
        result
      end
      
      protected
      
      def use_file(file)
        # convert string to logger
        file = ::Logger.new(file) if file.kind_of?(String)
        # assign Logger
        @@logger = file
      end
      
    end
    
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
quandl_logger-0.2.6 lib/quandl/logger.rb
quandl_logger-0.2.5 lib/quandl/logger.rb