def recursive_flush(handle, path):
  try:
    children = handle.get_children(path)
    logging.debug("Processing path: {0}".format(path))
    for child in children:
      logging.debug("Processing child: {0}".format(child))
      new_path = '{0}{1}'.format(path, child)
      if path != ZK_TOP_LEVEL:
        new_path = PATH_SEPARATOR.join([path, child])
      recursive_flush(handle, new_path)
    try:
      handle.delete(path)
    except kazoo.exceptions.BadArgumentsError:
      logging.warning('BadArgumentsError while deleting path: {0}.'.format(
        path))
    except kazoo.exceptions.NotEmptyError:
      logging.warning('NotEmptyError while deleting path: {0}. Skipping..'.
        format(path))
  except kazoo.exceptions.NoNodeError:
    logging.debug('Reached the end of the zookeeper path.')
Adds a NullHandler to the root logger.
dataset/ETHPy150Open AppScale/appscale/AppDB/backup/zookeeper_backup.py/recursive_flush--crossover with--dataset/ETHPy150Open SmokinCaterpillar/pypet/pypet/pypetlogging.py/LoggingManager.add_null_handler