регистрация исключений в Python 3 - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть следующее:

### running with Python 3 
import logging 
logger = logging.getLogger(__name__)                                                                                                              
logger.setLevel('DEBUG')                                                                           
logger.exception('this is an exception')                                  

Вывод:

this is an exception
NoneType: None

Что мне нужно сделать, чтобы избавиться от вывода "NoneType: None"?

1 Ответ

0 голосов
/ 06 ноября 2018

stdlib logging пытается добавить информацию об исключении , но у вас нет информации об исключении, потому что вы не входите в систему из блока except:. NoneType: None в конечном итоге происходит от результата sys.exc_info() вызова, при ведении журнала не нужно проверять, действительны они или нет.

Хромое решение:

logger.exception('this is an exception', exc_info=False)

Чуть менее отстой:

logger.error('this is an exception...haha not really')

Лучший:

try:
    # risky code
except Exception:
    logger.exception('this is an exception')

Если у вас есть исключение экземпляр , которое было перехвачено ранее, и вы хотите зарегистрировать его, и вы не находитесь в блоке исключений, это будет делать правильно:

logger.exception('this is an exception', exc_info=myerror)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...