Sha256: 2dbe1278151c8502ff7ab54d4ab81b3058b86ccfaa3dd9c3a7f2c94f32639c03

Contents?: true

Size: 1.89 KB

Versions: 15

Compression:

Stored size: 1.89 KB

Contents

class Logger
  def initialize
    self.messages = []
    self.log_writers = []
    self.level = 'info'

    self.levels = {}
    self.levels.all = 0
    self.levels.debug = 1
    self.levels.info = 2
    self.levels.warn = 3
    self.levels.error = 4
    self.levels.fatal = 5
    self.levels.off = 6

    self.colors = {}
    self.colors.all = 0
    self.colors.debug = 0
    self.colors.info = 0
    self.colors.warn = '31m'
    self.colors.error = '31m'
    self.colors.fatal = '31m'
    self.colors.off = 0
  end

  defm add_log_writer(log_writer)
    add(self.log_writers, log_writer)
  end

  defm set_level(level)
    self.level = level
  end

  defm get_level
    return self.level
  end

  defm get_level_num(level)
    return self.levels[level]
  end

  defm is_loggable(level)
    return self.get_level_num(level) >= self.get_level_num(self.level)
  end

  defm do_log(args, level)
    if self.is_loggable(level)
      msg = self.args_to_message(args)
      self.send_log(msg, level)
    end
  end

  defm args_to_message(args)
    return join(args, ' ')
  end

  defm send_log(msg, level)
    color_msg = self.to_color(msg, level)

    for log_writer in self.log_writers
      if log_writer.get_colorize()
        log_writer.log(color_msg)
      else
        log_writer.log(msg)
      end
    end
  end

  defm to_color(msg, level)
    color = self.colors[level]
    if color != 0
      return "[#{color}#{msg}"
    else
      return msg
    end
  end

  defm debug(...)
    self.do_log(a:000, 'debug')
  end

  defm info(...)
    self.do_log(a:000, 'info')
  end

  defm log(...)
    self.do_log(a:000, 'info')
  end

  defm warn(...)
    self.do_log(a:000, 'warn')
  end

  defm error(...)
    self.do_log(a:000, 'error')
  end

  defm fatal(...)
    self.do_log(a:000, 'fatal')
  end

end

def get_logger()
  unless exists('g:logger')
    g:logger = new Logger()
  end

  return g:logger
end

logger = get_logger()

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
speckle-0.1.26 lib/logger/logger.riml
speckle-0.1.25 lib/logger/logger.riml
speckle-0.1.24 lib/logger/logger.riml
speckle-0.1.23 lib/logger/logger.riml
speckle-0.1.22 lib/logger/logger.riml
speckle-0.1.21 lib/logger/logger.riml
speckle-0.1.20 lib/logger/logger.riml
speckle-0.1.19 lib/logger/logger.riml
speckle-0.1.18 lib/logger/logger.riml
speckle-0.1.17 lib/logger/logger.riml
speckle-0.1.16 lib/logger/logger.riml
speckle-0.1.15 lib/logger/logger.riml
speckle-0.1.14 lib/logger/logger.riml
speckle-0.1.13 lib/logger/logger.riml
speckle-0.1.12 lib/logger/logger.riml