def delete( key )
      key = to_key(key)
      raise 'the :root logger cannot be deleted' if :root == key

      parent = @h.fetch(key).parent
      children(key).each {|c| c.__send__(:parent=, parent)}
      @h.delete(key)
    end
def delete( key )
      key = to_key(key)
      raise 'the :root logger cannot be deleted' if :root == key

      parent = @h.fetch(key).parent
      children(key).each {|c| c.__send__(:parent=, parent)}
      @h.delete(key)
    end
call-seq:
    delete( name )

 Deletes the named logger from the repository. All direct children of the
 logger will have their parent reassigned. So the parent of the logger
 being deleted becomes the new parent of the children.

 When _name_ is a +String+ or a +Symbol+ it will be used "as is" to
 remove the logger. When _name_ is a +Class+ the class name will be
 used to remove the logger. When _name_ is an object the name of the
 object's class will be used to remove the logger.

 Raises a RuntimeError if you try to delete the root logger.
 Raises an KeyError if the named logger is not found.