I am playing with Python\'s logging system. I have noticed a strange behavior while removing handlers from a Logger object in a loop. Namely, my for loop removes all but one
instead of mutating undocumented .handler:
logging.getLogger().removeHandler(logging.getLogger().handlers[0])
this way you remove exactly the preexisting handler object via offical api. Or to remove all handlers:
logger = logging.getLogger()
while logger.hasHandlers():
logger.removeHandler(logger.handlers[0])
logging.config.dictConfig(config={'level': logging.DEBUG, 'handlers': []}
Not only removes but prevents its creation. List root will have [] handlers