module Dr::Logger

Public Class Methods

log(msg_type, msg, verbosity=nil) click to toggle source
# File lib/dr/logger.rb, line 105
def self.log(msg_type, msg, verbosity=nil)
  out = "dr".style("log-head") << " "

  case msg_type
  when :info
    out << "info".style(@@message_types[:info])
    verbosity = :informative unless verbosity
  when :warn
    out << "WARN".style(@@message_types[:warn])
    verbosity = :informative unless verbosity
  when :err
    out << "ERR!".style(@@message_types[:err])
    verbosity = :essential unless verbosity
  when :debug
    out << "dbg?".style(@@message_types[:debug])
    verbosity = :verbose unless verbosity
  end

  if verbosity <= @@verbosity
    out << " " << msg.chomp
    puts out
    STDOUT.flush

    unless @@log_file.nil?
       @@log_file.puts strip_colours out
       @@log_file.flush
    end
  end
end
set_logfile(file) click to toggle source
# File lib/dr/logger.rb, line 94
def self.set_logfile(file)
  @@log_file = file
end
set_verbosity(level) click to toggle source
# File lib/dr/logger.rb, line 98
def self.set_verbosity(level)
  msg = "Message verbosity level not recognised (#{})."
  raise msg unless @@logger_verbosity_levels.has_key? level.to_sym

  @@verbosity = level.to_sym
end

Private Class Methods

strip_colours(string) click to toggle source
# File lib/dr/logger.rb, line 144
def self.strip_colours(string)
  string.gsub(/\033\[[0-9]+(;[0-9]+){0,2}m/, '')
end

Public Instance Methods

log(msg_type, msg) click to toggle source
# File lib/dr/logger.rb, line 135
def log(msg_type, msg)
  Logger::log msg_type, msg
end
tag(tag, msg) click to toggle source
# File lib/dr/logger.rb, line 139
def tag(tag, msg)
  tag.fg("blue").bg("dark-grey") << " " << msg
end