Подавить весь вывод консоли из необработанного исключения в поведенииPython

Программы на Python
Anonymous
Подавить весь вывод консоли из необработанного исключения в поведении

Сообщение 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 с. Исключение: какое-то сообщение...

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