Sha256: 7a157a818aaa36300025442c5cc2664655cf76f41e8c02a2fbe122fa984d7217

Contents?: true

Size: 1.52 KB

Versions: 1

Compression:

Stored size: 1.52 KB

Contents

class Cachetastic::Logger
  
  attr_accessor :options
  attr_accessor :cache_name
  
  def initialize(options, cache_name)
    self.options = options
    # puts "self.options = #{self.options.inspect}"
    self.cache_name = cache_name
    self.options.each_pair do |n, opts|
      # puts "opts: #{opts.inspect}"
      # puts "asdfasfsadfaf opts[\"level\"] = #{opts["level"]}"
      opts["level"] = (opts["level"] ||= "info").to_sym
    end
  end
  
  LOG_LEVELS = [:fatal, :error, :warn, :info, :debug]
  
  LOG_LEVELS.each do |level|
    define_method(level) do |*args|
      # puts "logging for: #{level}"
      lm = "[CACHE] [#{level.to_s.upcase}]\t#{Time.now.strftime("%m/%d/%y %H:%m:%S")}"
      exs = []
      args.each do |arg|
        if arg.is_a?(Exception)
          exs << arg
          continue
        end
        lm << "\t" << arg.to_s 
      end
      exs.each do |ex|
        lm << "\n#{ex.message}\n" << ex.backtrace.join("\n")
      end
      self.options.each_pair do |n, opts|
        # puts "opts[\"level\"]: #{opts["level"]}"
        # # if level == opts["level"]
        # puts "LOG_LEVELS.index(opts[\"level\"]): #{LOG_LEVELS.index(opts["level"])} (#{opts["level"]})"
        # puts "LOG_LEVELS.index(level): #{LOG_LEVELS.index(level)} (#{level})"
        if LOG_LEVELS.index(opts["level"]) >= LOG_LEVELS.index(level)
          case opts["type"]
          when "file"
            File.open(opts["file"], "a") {|f| f.puts(lm)} 
          when "console"
            puts lm
          end
        end
      end
    end
  end
  
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cachetastic-1.0.5 lib/cachetastic_logger.rb