Parent

Class Index [+]

Quicksearch

MCollective::Log

A simple class that allows logging at various levels.

Constants

VALID_LEVELS
(Not documented)

Public Class Methods

check_level(level) click to toggle source

(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
config_and_check_level(level) click to toggle source

(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
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, 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
cycle_level() click to toggle source

increments the active log level

    # File lib/mcollective/log.rb, line 45
45:       def cycle_level
46:         @logger.cycle_level if @configured
47:       end
debug(msg) click to toggle source

Logs at debug level

    # File lib/mcollective/log.rb, line 25
25:       def debug(msg)
26:         log(:debug, msg)
27:       end
error(msg) click to toggle source

Logs at error level

    # File lib/mcollective/log.rb, line 35
35:       def error(msg)
36:         log(:error, msg)
37:       end
execution_stack() click to toggle source

this method is here to facilitate testing

     # File lib/mcollective/log.rb, line 170
170:       def execution_stack
171:         caller
172:       end
fatal(msg) click to toggle source

Logs at fatal level

    # File lib/mcollective/log.rb, line 30
30:       def fatal(msg)
31:         log(:fatal, msg)
32:       end
from() click to toggle source

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
info(msg) click to toggle source

Logs at info level

    # File lib/mcollective/log.rb, line 15
15:       def info(msg)
16:         log(:info, msg)
17:       end
instance() click to toggle source

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
log(level, msg, origin=nil) click to toggle source

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
logexception(msgid, level, e, backtrace=false, args={}) click to toggle source

(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
logger() click to toggle source

Obtain the class name of the currently configured logger

    # File lib/mcollective/log.rb, line 10
10:       def logger
11:         @logger.class
12:       end
logmsg(msgid, default, level, args={}) click to toggle source

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
message_for(msgid, args={}) click to toggle source

(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
set_logger(logger) click to toggle source

sets the logger class to use

     # File lib/mcollective/log.rb, line 121
121:       def set_logger(logger)
122:         @logger = logger
123:       end
unconfigure() click to toggle source

(Not documented)

     # File lib/mcollective/log.rb, line 158
158:       def unconfigure
159:         @configured = false
160:         set_logger(nil)
161:       end
valid_level?(level) click to toggle source

(Not documented)

    # File lib/mcollective/log.rb, line 59
59:       def valid_level?(level)
60:         VALID_LEVELS.include?(level)
61:       end
warn(msg) click to toggle source

Logs at warn level

    # File lib/mcollective/log.rb, line 20
20:       def warn(msg)
21:         log(:warn, msg)
22:       end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.