Sha256: d80fcb9f60420a718d96a2b39d70ebf2fd32e3072cac198a5f7efee03ade3ad6

Contents?: true

Size: 844 Bytes

Versions: 1

Compression:

Stored size: 844 Bytes

Contents

module Chronicle
  module ETL
    module Logger
      extend self

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

      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

1 entries across 1 versions & 1 rubygems

Version Path
chronicle-etl-0.4.1 lib/chronicle/etl/logger.rb