Module: Logger::HierarchyElement
- Included in:
- Hierarchy
- Defined in:
- lib/utilrb/logger/hierarchy.rb
Instance Method Summary collapse
- #each_log_child ⇒ Object
- #logger ⇒ Object
-
#logger=(new_logger) ⇒ Object
Allows to change the logger object at this level of the hierarchy.
-
#make_own_logger(new_progname = nil, new_level = nil) ⇒ Object
Makes it so that this level of the module hierarchy has its own logger.
- #register_log_child(child) ⇒ Object
- #reset_default_logger ⇒ Object
-
#reset_own_logger ⇒ Object
Removes a logger defined at this level of the module hierarchy.
Instance Method Details
#each_log_child ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/utilrb/logger/hierarchy.rb', line 31 def each_log_child return enum_for(__method__) if !block_given? log_children.delete_if do |ref| begin yield(ref.__getobj__) false rescue WeakRef::RefError true end end end |
#logger ⇒ Object
71 72 73 74 75 76 77 |
# File 'lib/utilrb/logger/hierarchy.rb', line 71 def logger if defined?(@logger) && @logger return @logger elsif defined?(@__utilrb_hierarchy__default_logger) && @__utilrb_hierarchy__default_logger return @__utilrb_hierarchy__default_logger end end |
#logger=(new_logger) ⇒ Object
Allows to change the logger object at this level of the hierarchy
This is usually not used directly: a new logger can be created with Hierarchy#make_own_logger and removed with Hierarchy#reset_own_logger
48 49 50 51 52 53 |
# File 'lib/utilrb/logger/hierarchy.rb', line 48 def logger=(new_logger) @logger = new_logger each_log_child do |child| child.reset_default_logger end end |
#make_own_logger(new_progname = nil, new_level = nil) ⇒ Object
Makes it so that this level of the module hierarchy has its own logger. If new_progname
and/or new_level
are nil, the associated value are taken from the parent’s logger.
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/utilrb/logger/hierarchy.rb', line 16 def make_own_logger(new_progname = nil, new_level = nil) new_logger = @logger || self.logger.dup if new_progname new_logger.progname = new_progname end if new_level new_logger.level = new_level end self.logger = new_logger end |
#register_log_child(child) ⇒ Object
27 28 29 |
# File 'lib/utilrb/logger/hierarchy.rb', line 27 def register_log_child(child) log_children << WeakRef.new(child) end |
#reset_default_logger ⇒ Object
64 65 66 67 68 69 |
# File 'lib/utilrb/logger/hierarchy.rb', line 64 def reset_default_logger @__utilrb_hierarchy__default_logger = nil each_log_child do |child| child.reset_default_logger end end |
#reset_own_logger ⇒ Object
Removes a logger defined at this level of the module hierarchy. The logging methods will now access the parent’s module logger.
57 58 59 60 61 62 |
# File 'lib/utilrb/logger/hierarchy.rb', line 57 def reset_own_logger @logger = nil each_log_child do |child| child.reset_default_logger end end |