module Logger::HierarchyElement
Public Instance Methods
each_log_child() { |__getobj__| ... }
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
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
# 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)
click to toggle source
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.
# 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)
click to toggle source
# File lib/utilrb/logger/hierarchy.rb, line 27 def register_log_child(child) log_children << WeakRef.new(child) end
reset_default_logger()
click to toggle source
# 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()
click to toggle source
Removes a logger defined at this level of the module hierarchy. The logging methods will now access the parent's module logger.
# 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