Подавить весь вывод консоли из необработанного исключения в поведении ⇐ Python
-
Anonymous
Подавить весь вывод консоли из необработанного исключения в поведении
Я улавливаю все исключения и регистрирую их с помощью loguru logger. Затем мне приходится повторно вызвать то же исключение, чтобы выполнить шаг не удалось, и отправить информацию об исключении в эластик.
из журнала импорта loguru @when('какой-то шаг...') Защиту do_something(контекст, ...): пытаться: ... кроме исключения как e: save_traceback_to_log_file() logger.error("Пример журнала исключений.") поднять е ------------------------ Вывод консоли: ... ... Пример журнала исключений. Я хочу видеть только журнал логуру. Мне не нужна обратная трассировка или сообщение об исключении из-за возникновения необработанного исключения в выводе консоли.
Как это сделать?
Похоже, ничего из этого не работает: sys.Exceptionhook, отключение stderr Python с помощью open(os.devnull, 'w'), декоратор захвата
Мне удалось отключить обратную трассировку с помощью:
@contextmanager защита отключить_traceback(): default_value = getattr(sys, "tracebacklimit", 1000) sys.tracebacklimit = 0 урожай sys.tracebacklimit = значение_по умолчанию Использование:
Пример исключения, возникшего в приложении:
вызвать исключение("Некоторое сообщение...")
кроме: ... с отключением_traceback(): поднять е Но я все равно получаю сообщение о нежелательном исключении в выводе консоли:
04.12.1999 15:36:47.153 | ОШИБКА | ... - Исключение - Какое-то сообщение... При выполнении системного теста "..." ... произошел сбой через 0,503 с. Исключение: какое-то сообщение...
Я улавливаю все исключения и регистрирую их с помощью loguru logger. Затем мне приходится повторно вызвать то же исключение, чтобы выполнить шаг не удалось, и отправить информацию об исключении в эластик.
из журнала импорта loguru @when('какой-то шаг...') Защиту do_something(контекст, ...): пытаться: ... кроме исключения как e: save_traceback_to_log_file() logger.error("Пример журнала исключений.") поднять е ------------------------ Вывод консоли: ... ... Пример журнала исключений. Я хочу видеть только журнал логуру. Мне не нужна обратная трассировка или сообщение об исключении из-за возникновения необработанного исключения в выводе консоли.
Как это сделать?
Похоже, ничего из этого не работает: sys.Exceptionhook, отключение stderr Python с помощью open(os.devnull, 'w'), декоратор захвата
Мне удалось отключить обратную трассировку с помощью:
@contextmanager защита отключить_traceback(): default_value = getattr(sys, "tracebacklimit", 1000) sys.tracebacklimit = 0 урожай sys.tracebacklimit = значение_по умолчанию Использование:
Пример исключения, возникшего в приложении:
вызвать исключение("Некоторое сообщение...")
кроме: ... с отключением_traceback(): поднять е Но я все равно получаю сообщение о нежелательном исключении в выводе консоли:
04.12.1999 15:36:47.153 | ОШИБКА | ... - Исключение - Какое-то сообщение... При выполнении системного теста "..." ... произошел сбой через 0,503 с. Исключение: какое-то сообщение...