module Logger::HierarchyElement
Public Instance Methods
deregister_log_child(child)
click to toggle source
# File lib/utilrb/logger/hierarchy.rb, line 31 def deregister_log_child(child) log_children.delete_if do |ref| begin ref.__getobj__ == child rescue WeakRef::RefError true end end end
each_log_child() { |__getobj__| ... }
click to toggle source
# File lib/utilrb/logger/hierarchy.rb, line 41 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 92 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 #make_own_logger and removed with #reset_own_logger
# File lib/utilrb/logger/hierarchy.rb, line 75 def logger=(new_logger) @logger = new_logger reset_children_default_logger 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_children_default_logger()
click to toggle source
@api private
Resets the default logger of this context's children
This is called whenever the context children is reset, since the cached default logger is now invalid
# File lib/utilrb/logger/hierarchy.rb, line 60 def reset_children_default_logger children = log_children @log_children = Array.new children.each do |ref| begin ref.__getobj__.reset_default_logger rescue WeakRef::RefError end end end
reset_default_logger()
click to toggle source
# File lib/utilrb/logger/hierarchy.rb, line 86 def reset_default_logger @__utilrb_hierarchy__default_logger = nil @parent_module.deregister_log_child(self) if @parent_module reset_children_default_logger 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 82 def reset_own_logger self.logger = nil end