class MCollective::Log - mcollective version 2.12.5

# class MCollective::Log

A simple class that allows logging at various levels.

### Public Class Methods

configure(logger=nil) click to toggle source

configures the logger class, if the config has not yet been loaded we default to the console logging class and do not set @configured so that future calls to the log method will keep attempting to configure the logger till we eventually get a logging preference from the config module

        # File lib/mcollective/log.rb
     79 def configure(logger=nil)
     80   unless logger
     81     logger_type = "console"
     82
     83     config = Config.instance
     84
     85     if config.configured
     86       logger_type = config.logger_type
     87       @configured = true
     88     end
     89
     90     require "mcollective/logger/#{logger_type.downcase}_logger"
     91
     92     logger_class = MCollective::Logger.const_get("#{logger_type.capitalize}_logger")
     93
     94     set_logger(logger_class.new)
     95   else
     96     set_logger(logger)
     97     @configured = true
     98   end
     99
    100   @logger.start
    101 rescue Exception => e
    102   @configured = false
    103   STDERR.puts "Could not start logger: #{e.class} #{e}"
    104 end

cycle_level() click to toggle source

increments the active log level

       # File lib/mcollective/log.rb
    43 def cycle_level
    44   @logger.cycle_level if @configured
    45 end

debug(msg) click to toggle source

Logs at debug level

       # File lib/mcollective/log.rb
    23 def debug(msg)
    24   log(:debug, msg)
    25 end

error(msg) click to toggle source

Logs at error level

       # File lib/mcollective/log.rb
    33 def error(msg)
    34   log(:error, msg)
    35 end

execution_stack() click to toggle source

this method is here to facilitate testing and from

        # File lib/mcollective/log.rb
    113 def execution_stack
    114   caller
    115 end

fatal(msg) click to toggle source

Logs at fatal level

       # File lib/mcollective/log.rb
    28 def fatal(msg)
    29   log(:fatal, msg)
    30 end

from() click to toggle source

figures out the filename that called us

        # File lib/mcollective/log.rb
    107 def from
    108   path, line, method = execution_stack[3].split(/:(\d+)/)
    109   "%s:%s%s" % [File.basename(path), line, method]
    110 end

info(msg) click to toggle source

Logs at info level

       # File lib/mcollective/log.rb
    13 def info(msg)
    14   log(:info, msg)
    15 end

instance() click to toggle source

handle old code that relied on this class being a singleton

       # File lib/mcollective/log.rb
    38 def instance
    39   self
    40 end

log(level, msg) click to toggle source

logs a message at a certain level

       # File lib/mcollective/log.rb
    55 def log(level, msg)
    56   configure unless @configured
    57
    58   raise "Unknown log level" unless [:error, :fatal, :debug, :warn, :info].include?(level)
    59
    60   if @logger
    61     @logger.log(level, from, msg)
    62   else
    63     t = Time.new.strftime("%H:%M:%S")
    64
    65     STDERR.puts "#{t}: #{level}: #{from}: #{msg}"
    66   end
    67 end

logger() click to toggle source

Obtain the class name of the currently configured logger

       # File lib/mcollective/log.rb
     8 def logger
     9   @logger.class
    10 end

reopen() click to toggle source

reopen log files

       # File lib/mcollective/log.rb
    48 def reopen
    49   if @configured
    50     @logger.reopen
    51   end
    52 end

set_logger(logger) click to toggle source

sets the logger class to use

       # File lib/mcollective/log.rb
    70 def set_logger(logger)
    71   @logger = logger
    72 end

warn(msg) click to toggle source

Logs at warn level

       # File lib/mcollective/log.rb
    18 def warn(msg)
    19   log(:warn, msg)
    20 end