class MCollective::Logger::Console_logger

Implements a syslog based logger using the standard ruby syslog class

Public Instance Methods

color(level) click to toggle source

Set some colors for various logging levels, will honor the color configuration option and return nothing if its configured not to

# File lib/mcollective/logger/console_logger.rb, line 39
def color(level)
  colorize = Config.instance.color

  colors = {:error => Util.color(:red),
            :fatal => Util.color(:red),
            :warn  => Util.color(:yellow),
            :info  => Util.color(:green),
            :reset => Util.color(:reset)}

  if colorize
    return colors[level] || ""
  else
    return ""
  end
end
colorize(level, msg) click to toggle source

Helper to return a string in specific color

# File lib/mcollective/logger/console_logger.rb, line 56
def colorize(level, msg)
  "%s%s%s" % [ color(level), msg, color(:reset) ]
end
log(level, from, msg, normal_output=STDERR, last_resort_output=STDERR) click to toggle source
# File lib/mcollective/logger/console_logger.rb, line 24
def log(level, from, msg, normal_output=STDERR, last_resort_output=STDERR)
  if @known_levels.index(level) >= @known_levels.index(@active_level)
    time = Time.new.strftime("%Y/%m/%d %H:%M:%S")

    normal_output.puts("%s %s: %s %s" % [colorize(level, level), time, from, msg])
  end
rescue
  # if this fails we probably cant show the user output at all,
  # STDERR it as last resort
  last_resort_output.puts("#{level}: #{msg}")
end
set_logging_level(level) click to toggle source
# File lib/mcollective/logger/console_logger.rb, line 12
def set_logging_level(level)
  # nothing to do here, we ignore high levels when we log
end
start() click to toggle source
# File lib/mcollective/logger/console_logger.rb, line 5
def start
  set_level(:info)

  config = Config.instance
  set_level(config.loglevel.to_sym) if config.configured
end
valid_levels() click to toggle source
# File lib/mcollective/logger/console_logger.rb, line 16
def valid_levels
  {:info  => :info,
   :warn  => :warning,
   :debug => :debug,
   :fatal => :crit,
   :error => :err}
end