Sha256: 6e77e2f936f118fb4c30599be680c78814c24c8ee5478252a023f3852c4fcf8a

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

module Itiel
  class Logger
    class << self
      attr_accessor :logger
    end

    def self.log_received(object, size)
      msg = "#{object_name(object)} received #{size}.rows"
      self.log_with_time(msg)
    end

    def self.log_processed(object, size)
      msg = "#{object_name(object)} processed #{size}.rows"
      self.log_with_time(msg)
    end

    def self.log_start_job(object)
      msg = "#{object_name(object)} run at #{Time.now}"
      self.enclosed_with_time(msg)
    end

    def self.log_end_job(object)
      msg = "#{object_name(object)} finished at #{Time.now}"
      self.enclosed_with_time(msg)
    end

    private
    def self.object_name(object)
      ( object.respond_to?(:name) ? object.name : object.class.name )
    end

    def self.info(message)
      self.logger ||= ::Logger.new(STDOUT)
      self.logger.info(message)
    end

    def self.log_with_time(msg)
      self.info("#{Time.now} - #{msg}")
    end

    def self.enclosed_with_time(msg)
      self.info("\n==================================================\n")
      self.info(msg)
      self.info("\n==================================================\n")
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
itiel-0.1.2 lib/itiel/logger.rb
itiel-0.1.1 lib/itiel/logger.rb
itiel-0.1.0 lib/itiel/logger.rb