Sha256: 3e6252dad4c564efca947861ce3833ba455838d6d921181b10ec5bb543f46deb

Contents?: true

Size: 1.15 KB

Versions: 12

Compression:

Stored size: 1.15 KB

Contents

module God

  class SimpleLogger
    DEBUG = 2
    INFO = 4
    WARN = 8
    ERROR = 16
    FATAL = 32

    SEV_LABEL = {DEBUG => 'DEBUG',
                 INFO => 'INFO',
                 WARN => 'WARN',
                 ERROR => 'ERROR',
                 FATAL => 'FATAL'}

    CONSTANT_TO_SYMBOL = { DEBUG => :debug,
                           INFO => :info,
                           WARN => :warn,
                           ERROR => :error,
                           FATAL => :fatal }

    attr_accessor :datetime_format, :level

    def initialize(io)
      @io = io
      @level = INFO
      @datetime_format = "%Y-%m-%d %H:%M:%S"
    end

    def output(level, msg)
      return if level < self.level

      time = Time.now.strftime(self.datetime_format)
      label = SEV_LABEL[level]
      @io.print("#{label[0..0]} [#{time}] #{label.rjust(5)}: #{msg}\n")
    end

    def fatal(msg)
      self.output(FATAL, msg)
    end

    def error(msg)
      self.output(ERROR, msg)
    end

    def warn(msg)
      self.output(WARN, msg)
    end

    def info(msg)
      self.output(INFO, msg)
    end

    def debug(msg)
      self.output(DEBUG, msg)
    end
  end

end

Version data entries

12 entries across 12 versions & 3 rubygems

Version Path
resurrected_god-0.14.0 lib/god/simple_logger.rb
mcproc-2016.2.20 lib/god/simple_logger.rb
god-0.13.7 lib/god/simple_logger.rb
god-0.13.6 lib/god/simple_logger.rb
god-0.13.5 lib/god/simple_logger.rb
god-0.13.4 lib/god/simple_logger.rb
god-0.13.3 lib/god/simple_logger.rb
god-0.13.2 lib/god/simple_logger.rb
god-0.13.1 lib/god/simple_logger.rb
god-0.13.0 lib/god/simple_logger.rb
god-0.12.1 lib/god/simple_logger.rb
god-0.12.0 lib/god/simple_logger.rb