Этот ответ от Карлоса А. Ибарры в принципе прав, однако реализация может нарушиться, так как вы перебираете список, который можно изменить, вызвав removeHandler (). Это небезопасно.
Два варианта:
while len(logging.root.handlers) > 0:
logging.root.removeHandler(logging.root.handlers[-1])
logging.basicConfig(format='%(asctime)s %(message)s',level=logging.DEBUG)
или
logging.root.handlers = []
logging.basicConfig(format='%(asctime)s %(message)s',level=logging.DEBUG)
, где первый из этих двух, использующих цикл, является самым безопасным (поскольку любой код уничтожения для обработчика может быть вызван явным образом внутри каркаса ведения журнала). Тем не менее, это взлом, так как мы полагаемся на logging.root.handlers, чтобы быть списком.