Запись в Python: обратные эффекты disable ()

Документы протоколирования говорят, что вызов logging.disable(lvl) может «временно отключить вывод журнала на все приложение», но мне трудно найти «временно». Возьмем, к примеру, следующий скрипт:

 import logging logging.disable(logging.CRITICAL) logging.warning("test") # Something here logging.warning("test") 

До сих пор я не смог найти Something here что- Something here что позволит снова включить систему ведения журнала в целом и позволит второму warning пройти. Есть ли обратный режим для disable() ?

2 Solutions collect form web for “Запись в Python: обратные эффекты disable ()”

 logging.disable(logging.NOTSET) 

Основываясь на ответе @unutbu, я создал диспетчер контекстов:

 import logging log = logging.getLogger(__name__) class SuppressLogging: """ Context handler class that suppresses logging for some controlled code. """ def __init__(self, loglevel): logging.disable(loglevel) return def __enter__(self): return def __exit__(self, exctype, excval, exctraceback): logging.disable(logging.NOTSET) return False if __name__ == "__main__": logging.basicConfig(level=logging.INFO) log.info("log this") with SuppressLogging(logging.WARNING): log.info("don't log this") log.warning("don't log this warning") log.error("log this error while up to WARNING suppressed") log.info("log this again") 
Python - лучший язык программирования в мире.