Sha256: b812ee92d7b176abd48ca39677fdfaaac0b0afd4ecc4f5528d57549f7c8057d9

Contents?: true

Size: 827 Bytes

Versions: 3

Compression:

Stored size: 827 Bytes

Contents

module Chronicle
  module ETL
    module Logger
      extend self

      DEBUG = 0
      INFO = 1
      WARN = 2
      ERROR = 3
      FATAL = 4

      attr_accessor :log_level

      @log_level = INFO
      @destination = $stderr

      def output message, level
        return unless level >= @log_level

        if @progress_bar
          @progress_bar.log(message)
        else
          @destination.puts(message)
        end
      end

      def error(message)
        output(message, ERROR)
      end

      def info(message)
        output(message, INFO)
      end

      def debug(message)
        output(message, DEBUG)
      end

      def attach_to_progress_bar(progress_bar)
        @progress_bar = progress_bar
      end

      def detach_from_progress_bar
        @progress_bar = nil
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
chronicle-etl-0.4.0 lib/chronicle/etl/logger.rb
chronicle-etl-0.3.1 lib/chronicle/etl/logger.rb
chronicle-etl-0.3.0 lib/chronicle/etl/logger.rb