Временно изменить уровень ведения журнала – безопасноPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Временно изменить уровень ведения журнала – безопасно

Сообщение Anonymous »

В соответствии с разделом «Динамическое изменение уровня журнала без перезапуска приложения» я могу временно изменить уровень журнала:
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»