Как зарегистрировать исключение python? [дубликат]
этот вопрос уже есть ответ здесь:
Как я могу зарегистрировать исключение в Python?
Я посмотрел на некоторые параметры и узнал, что я могу получить доступ к фактическим деталям исключения, используя этот код:
import sys
import traceback
try:
1/0
except:
exc_type, exc_value, exc_traceback = sys.exc_info()
traceback.print_exception(exc_type, exc_value, exc_traceback)
Я хотел бы как-то получить строку print_exception()
бросает в stdout, так что я могу войти в него.
5 ответов:
чтобы ответить на ваш вопрос, вы можете получить строковую версию
print_exception()
С помощьюtraceback.format_exception()
посмотри
logging.exception
(Модуль Ведения Журнала Python)import logging def foo(): try: some_code() except: logging.exception('')
Это должно автоматически позаботиться о получении обратной трассировки для текущего исключения и регистрации его должным образом.
исключения ведения журнала так же просто, как добавление аргумента ключевого слова exc_info=True к любому сообщению журнала, см. Запись для Logger.отладка в http://docs.python.org/2/library/logging.html.
пример:
try: raise Exception('lala') except Exception: logging.info('blah', exc_info=True)
вывод (в зависимости, конечно, от конфигурации обработчика журнала):
2012-11-29 10:18:12,778 - root - INFO - <ipython-input-27-5af852892344> : 3 - blah Traceback (most recent call last): File "<ipython-input-27-5af852892344>", line 1, in <module> try: raise Exception('lala') Exception: lala