Class: MCollective::Log
- Inherits:
-
Object
- Object
- MCollective::Log
- Defined in:
- lib/mcollective/log.rb
Overview
A simple class that allows logging at various levels.
Class Method Summary collapse
-
.configure(logger = nil) ⇒ Object
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.
-
.cycle_level ⇒ Object
increments the active log level.
-
.debug(msg) ⇒ Object
Logs at debug level.
-
.error(msg) ⇒ Object
Logs at error level.
-
.execution_stack ⇒ Object
this method is here to facilitate testing and from.
-
.fatal(msg) ⇒ Object
Logs at fatal level.
-
.from ⇒ Object
figures out the filename that called us.
-
.info(msg) ⇒ Object
Logs at info level.
-
.instance ⇒ Object
handle old code that relied on this class being a singleton.
-
.log(level, msg) ⇒ Object
logs a message at a certain level.
-
.logger ⇒ Object
Obtain the class name of the currently configured logger.
-
.set_logger(logger) ⇒ Object
sets the logger class to use.
-
.warn(msg) ⇒ Object
Logs at warn level.
Class Method Details
.configure(logger = nil) ⇒ Object
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
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/mcollective/log.rb', line 72 def configure(logger=nil) unless logger logger_type = "console" config = Config.instance if config.configured logger_type = config.logger_type @configured = true end require "mcollective/logger/#{logger_type.downcase}_logger" logger_class = MCollective::Logger.const_get("#{logger_type.capitalize}_logger") set_logger(logger_class.new) else set_logger(logger) @configured = true end @logger.start rescue Exception => e @configured = false STDERR.puts "Could not start logger: #{e.class} #{e}" end |
.cycle_level ⇒ Object
increments the active log level
43 44 45 |
# File 'lib/mcollective/log.rb', line 43 def cycle_level @logger.cycle_level if @configured end |
.debug(msg) ⇒ Object
Logs at debug level
23 24 25 |
# File 'lib/mcollective/log.rb', line 23 def debug(msg) log(:debug, msg) end |
.error(msg) ⇒ Object
Logs at error level
33 34 35 |
# File 'lib/mcollective/log.rb', line 33 def error(msg) log(:error, msg) end |
.execution_stack ⇒ Object
this method is here to facilitate testing and from
106 107 108 |
# File 'lib/mcollective/log.rb', line 106 def execution_stack caller end |
.fatal(msg) ⇒ Object
Logs at fatal level
28 29 30 |
# File 'lib/mcollective/log.rb', line 28 def fatal(msg) log(:fatal, msg) end |
.from ⇒ Object
figures out the filename that called us
100 101 102 103 |
# File 'lib/mcollective/log.rb', line 100 def from path, line, method = execution_stack[3].split(/:(\d+)/) "%s:%s%s" % [File.basename(path), line, method] end |
.info(msg) ⇒ Object
Logs at info level
13 14 15 |
# File 'lib/mcollective/log.rb', line 13 def info(msg) log(:info, msg) end |
.instance ⇒ Object
handle old code that relied on this class being a singleton
38 39 40 |
# File 'lib/mcollective/log.rb', line 38 def instance self end |
.log(level, msg) ⇒ Object
logs a message at a certain level
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/mcollective/log.rb', line 48 def log(level, msg) configure unless @configured raise "Unknown log level" unless [:error, :fatal, :debug, :warn, :info].include?(level) if @logger @logger.log(level, from, msg) else t = Time.new.strftime("%H:%M:%S") STDERR.puts "#{t}: #{level}: #{from}: #{msg}" end end |
.logger ⇒ Object
Obtain the class name of the currently configured logger
8 9 10 |
# File 'lib/mcollective/log.rb', line 8 def logger @logger.class end |
.set_logger(logger) ⇒ Object
sets the logger class to use
63 64 65 |
# File 'lib/mcollective/log.rb', line 63 def set_logger(logger) @logger = logger end |
.warn(msg) ⇒ Object
Logs at warn level
18 19 20 |
# File 'lib/mcollective/log.rb', line 18 def warn(msg) log(:warn, msg) end |