В соответствии с разделом «Динамическое изменение уровня журнала без перезапуска приложения» я могу временно изменить уровень журнала:
logger_level = my_logger.level
my_logger.setLevel(logging.DEBUG)
a = do_something_with_higher_logging1()
b,c = do_something_with_higher_logging2()
d = do_something_with_higher_logging3()
my_logger.setLevel(logger_level)
Проблема в том, что если do_something_with_higher_logging[123] вызывает исключение (которое перехватывается вне этого, поэтому моя программа не завершается), уровень my_logger не сбрасывается обратно и остается в состоянии DEBUG.
Я могу сделать
def call_with_loglevel(logger, level, f, **kwargs):
"Call f with logger at a different level"
saved_logger_level = logger.level
logger.setLevel(level)
try:
return f(**kwargs)
finally:
logger.setLevel(saved_logger_level)
но для этого мне нужно определить f из do_something_with_higher_logging[123]...
Чего я хочу это что-то вроде
with my_logger.setLevel(logging.DEBUG):
a = do_something_with_higher_logging1()
b,c = do_something_with_higher_logging2()
d = do_something_with_higher_logging3()
Подробнее здесь: https://stackoverflow.com/questions/780 ... vel-safely
Временно изменить уровень ведения журнала – безопасно ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как добавить собственный уровень журнала в функцию ведения журнала Python
Anonymous » » в форуме Python - 0 Ответы
- 20 Просмотры
-
Последнее сообщение Anonymous
-