Sha256: 4ad8b8efe67e555ba4470533ee9f914d40dd82ce249ac2ae3cc8164b6efa5e2f

Contents?: true

Size: 874 Bytes

Versions: 2

Compression:

Stored size: 874 Bytes

Contents

class FnordMetric::Logger

  def self.start(logfile_path)    
    require 'json'
    event_ids = Queue.new
    dump_file = File.open(logfile_path, 'a+')

    fetcher = Thread.new do
      redis = Redis.new
      loop do
        event_id = event_ids.pop
        event_data = redis.get("fnordmetric-event-#{event_id}")        
        event_hash = JSON.parse(event_data) rescue next

        event_hash.merge!(:_time => Time.now.to_i)

        dump_file.write(event_hash.to_json+"\n")
        dump_file.flush

        print "\033[1;34m" 
        print event_hash.inspect
        print "\033[0m\n"             
      end
    end

    listener = Thread.new do  
      redis = Redis.new
      redis.subscribe("fnordmetric-announce") do |on|
        on.message do |channel, event_id|      
          event_ids << event_id
        end
      end
    end

    fetcher.join
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fnordmetric-0.5.1 lib/fnordmetric/logger.rb
fnordmetric-0.5.0 lib/fnordmetric/logger.rb