A simple class that allows logging at various levels.
(Not documented)
# File lib/mcollective/log.rb, line 55 55: def check_level(level) 56: raise "Unknown log level" unless valid_level?(level) 57: end
(Not documented)
# File lib/mcollective/log.rb, line 49 49: def config_and_check_level(level) 50: configure unless @configured 51: check_level(level) 52: @logger.should_log?(level) 53: end
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, line 130 130: def configure(logger=nil) 131: unless logger 132: logger_type = "console" 133: 134: config = Config.instance 135: 136: if config.configured 137: logger_type = config.logger_type 138: @configured = true 139: end 140: 141: require "mcollective/logger/%s_logger" % logger_type.downcase 142: 143: logger_class = MCollective::Logger.const_get("%s_logger" % logger_type.capitalize) 144: 145: set_logger(logger_class.new) 146: else 147: set_logger(logger) 148: @configured = true 149: end 150: 151: 152: @logger.start 153: rescue Exception => e 154: @configured = false 155: STDERR.puts "Could not start logger: #{e.class} #{e}" 156: end
increments the active log level
# File lib/mcollective/log.rb, line 45 45: def cycle_level 46: @logger.cycle_level if @configured 47: end
Logs at debug level
# File lib/mcollective/log.rb, line 25 25: def debug(msg) 26: log(:debug, msg) 27: end
Logs at error level
# File lib/mcollective/log.rb, line 35 35: def error(msg) 36: log(:error, msg) 37: end
this method is here to facilitate testing
# File lib/mcollective/log.rb, line 170 170: def execution_stack 171: caller 172: end
Logs at fatal level
# File lib/mcollective/log.rb, line 30 30: def fatal(msg) 31: log(:fatal, msg) 32: end
figures out the filename that called us
# File lib/mcollective/log.rb, line 164 164: def from 165: path, line, method = execution_stack[3].split(/:(\d+)/) 166: "%s:%s%s" % [File.basename(path), line, method] 167: end
Logs at info level
# File lib/mcollective/log.rb, line 15 15: def info(msg) 16: log(:info, msg) 17: end
handle old code that relied on this class being a singleton
# File lib/mcollective/log.rb, line 40 40: def instance 41: self 42: end
logs a message at a certain level
# File lib/mcollective/log.rb, line 106 106: def log(level, msg, origin=nil) 107: return unless config_and_check_level(level) 108: 109: origin = from unless origin 110: 111: if @logger 112: @logger.log(level, origin, msg) 113: else 114: t = Time.new.strftime("%H:%M:%S") 115: 116: STDERR.puts "#{t}: #{level}: #{origin}: #{msg}" 117: end 118: end
(Not documented)
# File lib/mcollective/log.rb, line 67 67: def logexception(msgid, level, e, backtrace=false, args={}) 68: return false unless config_and_check_level(level) 69: 70: path, line, method = e.backtrace[1].split(/:(\d+)/) 71: origin = "%s:%s%s" % [File.basename(path), line, method] 72: 73: if e.is_a?(CodedError) 74: msg = "%s: %s" % [e.code, e.to_s] 75: else 76: error_string = "%s: %s" % [e.class, e.to_s] 77: msg = message_for(msgid, args.merge(:error => error_string)) 78: end 79: 80: log(level, msg, origin) 81: 82: if backtrace 83: e.backtrace.each do |line| 84: log(level, "%s: %s" % [msgid, line], origin) 85: end 86: end 87: end
Obtain the class name of the currently configured logger
# File lib/mcollective/log.rb, line 10 10: def logger 11: @logger.class 12: end
Logs a message at a certain level, the message must be a token that will be looked up from the i18n localization database
Messages can interprolate strings from the args hash, a message with “foo %{bar}” in the localization database will use args[:bar] for the value there, the interprolation is handled by the i18n library itself
# File lib/mcollective/log.rb, line 97 97: def logmsg(msgid, default, level, args={}) 98: return false unless config_and_check_level(level) 99: 100: msg = message_for(msgid, {:default => default}.merge(args)) 101: 102: log(level, msg) 103: end
(Not documented)
# File lib/mcollective/log.rb, line 63 63: def message_for(msgid, args={}) 64: "%s: %s" % [msgid, Util.t(msgid, args)] 65: end
sets the logger class to use
# File lib/mcollective/log.rb, line 121 121: def set_logger(logger) 122: @logger = logger 123: end
(Not documented)
# File lib/mcollective/log.rb, line 158 158: def unconfigure 159: @configured = false 160: set_logger(nil) 161: end
Disabled; run with --debug to generate this.
Generated with the Darkfish Rdoc Generator 1.1.6.