Implements a syslog based logger using the standard ruby syslog class
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
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
# 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
# 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
# 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
# File lib/mcollective/logger/console_logger.rb, line 16 def valid_levels {:info => :info, :warn => :warning, :debug => :debug, :fatal => :crit, :error => :err} end