Sha256: 5b7f01f0abd5fb62d9e9864766da48b138b12803f01eb603fdd4bb41b8757363

Contents?: true

Size: 1.76 KB

Versions: 56

Compression:

Stored size: 1.76 KB

Contents

module MCollective
  module Logger
    # Implements a syslog based logger using the standard ruby syslog class
    class Console_logger<Base
      def start
        set_level(:info)

        config = Config.instance
        set_level(config.loglevel.to_sym) if config.configured
      end

      def set_logging_level(level)
        # nothing to do here, we ignore high levels when we log
      end

      def valid_levels
        {:info  => :info,
         :warn  => :warning,
         :debug => :debug,
         :fatal => :crit,
         :error => :err}
      end

      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 some colors for various logging levels, will honor the
      # color configuration option and return nothing if its configured
      # not to
      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
      def colorize(level, msg)
        "%s%s%s" % [ color(level), msg, color(:reset) ]
      end
    end
  end
end

Version data entries

56 entries across 56 versions & 2 rubygems

Version Path
choria-mcorpc-support-2.22.1 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.22.0 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.21.1 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.21.0 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.8 lib/mcollective/logger/console_logger.rb
mcollective-client-2.12.5 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.7 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.6 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.5 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.4 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.3 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.2 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-2.20.0 lib/mcollective/logger/console_logger.rb
choria-mcorpc-support-0.0.1 lib/mcollective/logger/console_logger.rb
mcollective-client-2.12.4 lib/mcollective/logger/console_logger.rb
mcollective-client-2.12.3 lib/mcollective/logger/console_logger.rb
mcollective-client-2.12.1 lib/mcollective/logger/console_logger.rb
mcollective-client-2.12.0 lib/mcollective/logger/console_logger.rb
mcollective-client-2.10.6 lib/mcollective/logger/console_logger.rb
mcollective-client-2.11.4 lib/mcollective/logger/console_logger.rb