Class: Log4r::RootLogger

Inherits:
Logger
  • Object
show all
Includes:
Singleton
Defined in:
lib/log4r/logger.rb

Overview

RootLogger should be retrieved with Logger.root or Logger.global. It's supposed to be transparent.

We must guarantee the creation of RootLogger before any other Logger or Outputter gets their logging methods defined. There are two guarantees in the code:

  • Logger#deal_with_inheritance - calls RootLogger.instance when a new Logger is created without a parent. Parents must exist, therefore RootLogger is forced to be created.

  • OutputterFactory.create_methods - Calls Logger.root first. So if an Outputter is created, RootLogger is also created.

When RootLogger is created, it calls Log4r.define_levels(*Log4rConfig::LogLevels). This ensures that the default levels are loaded if no custom ones are.

Instance Attribute Summary

Attributes inherited from Logger

#additive, #fullname, #level, #name, #outputters, #parent, #path, #trace

Instance Method Summary collapse

Methods inherited from Logger

#==, [], each, each_logger, get, global, #levels, log_internal, root

Constructor Details

#initializeRootLogger

Returns a new instance of RootLogger.



172
173
174
175
176
177
178
179
# File 'lib/log4r/logger.rb', line 172

def initialize
  Log4r.define_levels(*Log4rConfig::LogLevels) # ensure levels are loaded
  @level = ALL
  @outputters = []
  Repository['root'] = self
  Repository['global'] = self
  LoggerFactory.undefine_methods(self)
end

Instance Method Details

#add(*foo) ⇒ Object

Does nothing



195
# File 'lib/log4r/logger.rb', line 195

def add(*foo); end

#additive=(foo) ⇒ Object

Does nothing



193
# File 'lib/log4r/logger.rb', line 193

def additive=(foo); end

#is_root?Boolean

Returns:

  • (Boolean)


181
# File 'lib/log4r/logger.rb', line 181

def is_root?; true end

#level=(alevel) ⇒ Object

Set the global level. Any loggers defined thereafter will not log below the global level regardless of their levels.



186
# File 'lib/log4r/logger.rb', line 186

def level=(alevel); @level = alevel end

#outputters=(foo) ⇒ Object

Does nothing



189
# File 'lib/log4r/logger.rb', line 189

def outputters=(foo); end

#remove(*foo) ⇒ Object

Does nothing



197
# File 'lib/log4r/logger.rb', line 197

def remove(*foo); end

#trace=(foo) ⇒ Object

Does nothing



191
# File 'lib/log4r/logger.rb', line 191

def trace=(foo); end