Class: Log4Ruby::Logger
- Inherits:
-
Object
- Object
- Log4Ruby::Logger
- Defined in:
- lib/log4ruby/logger.rb
Overview
Represents a logger. Loggers are arranged into a tree, where each logger, after having dispatched the log to its appenders, forwards the log to its parents too.
Direct Known Subclasses
Instance Attribute Summary collapse
-
#effective_level ⇒ Object
readonly
The effective level of this logger.
-
#full_name ⇒ Object
readonly
The full name of this logger.
-
#name ⇒ Object
readonly
The name of this logger.
-
#use_parent_appenders ⇒ Object
writeonly
True to use parent appenders (the default) false to use only this logger’s appenders.
Instance Method Summary collapse
-
#add_appender(appender) ⇒ Object
Adds an appender to this logger.
-
#close ⇒ TrueClass
Shuts down this logger.
-
#closed? ⇒ TrueClass, FalseClass
Check if this logger is closed.
-
#get_logger(name, create = false) ⇒ Object
Gets a child logger with the specified name.
-
#initialize(name, parent = nil, level = nil, appenders = []) ⇒ Logger
constructor
Creates a new logger.
-
#set_level(new_level) ⇒ Object
Update this logger’s level.
-
#to_s ⇒ String
Returns the full name of the logger.
Constructor Details
#initialize(name, parent = nil, level = nil, appenders = []) ⇒ Logger
Creates a new logger. Users should not use this method, and should use the Log4Ruby.get_logger method.
(defaults to DEBUG for the root logger).
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/log4ruby/logger.rb', line 31 def initialize(name, parent = nil, level = nil, appenders = []) @name = name @parent = parent.nil? ? RootLogger.instance : parent @level = level @appenders = appenders @children = {} @closed = false @use_parent_appenders = true @full_name = @parent.kind_of?(RootLogger) ? @name : @parent.full_name + "." + @name @effective_level = level.nil? ? @parent.effective_level : level end |
Instance Attribute Details
#effective_level ⇒ Object (readonly)
The effective level of this logger. This will be the parent’s effective level if a level has not been explicitly set for this logger.
16 17 18 |
# File 'lib/log4ruby/logger.rb', line 16 def effective_level @effective_level end |
#full_name ⇒ Object (readonly)
The full name of this logger.
18 19 20 |
# File 'lib/log4ruby/logger.rb', line 18 def full_name @full_name end |
#name ⇒ Object (readonly)
The name of this logger.
20 21 22 |
# File 'lib/log4ruby/logger.rb', line 20 def name @name end |
#use_parent_appenders=(value) ⇒ Object (writeonly)
True to use parent appenders (the default) false to use only this logger’s appenders.
22 23 24 |
# File 'lib/log4ruby/logger.rb', line 22 def use_parent_appenders=(value) @use_parent_appenders = value end |
Instance Method Details
#add_appender(appender) ⇒ Object
Adds an appender to this logger.
47 48 49 |
# File 'lib/log4ruby/logger.rb', line 47 def add_appender(appender) @appenders << appender end |
#close ⇒ TrueClass
Shuts down this logger. It will no longer dispatch logs to its appenders, not will it forward logs to its parent.
54 55 56 |
# File 'lib/log4ruby/logger.rb', line 54 def close @closed = true end |
#closed? ⇒ TrueClass, FalseClass
Check if this logger is closed.
61 62 63 |
# File 'lib/log4ruby/logger.rb', line 61 def closed? @closed end |
#get_logger(name, create = false) ⇒ Object
Gets a child logger with the specified name. If the create flag is true, it will create a new logger with this name.
70 71 72 73 74 75 76 77 78 |
# File 'lib/log4ruby/logger.rb', line 70 def get_logger(name, create = false) if @children.has_key?(name) @children[name] elsif create @children[name] = Logger.new(name, self) else raise Log4Ruby::LoggerNotFoundError.new("Logger '#{name}' does not exist under '#@full_name'!") end end |
#set_level(new_level) ⇒ Object
Update this logger’s level. This will update the effective level for all child loggers too (except for the ones that have had their level explicitly set.
84 85 86 87 88 |
# File 'lib/log4ruby/logger.rb', line 84 def set_level(new_level) @level = new_level @effective_level = new_level @children.each_value { |logger| logger.update_effective_level(new_level) } end |
#to_s ⇒ String
Returns the full name of the logger.
93 94 95 |
# File 'lib/log4ruby/logger.rb', line 93 def to_s @full_name end |