Информация об исключении печатается только при использовании sys.stdout

#python #logging #python-logging

#python #ведение журнала #python-ведение журнала

Вопрос:

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

 a_dict = {'data': 'y'}


try:
    raise KeyError
except KeyError:
    logging.info(f'yo {a_dict}')
    logging.exception(f'ye {a_dict}')
  

Что приводит к

 {"message": "yo {'data': 'y'} some_location:29", "severity": "INFO"}
{"message": "Traceback (most recent call last):n  File "/some_fake_location", line 27, in a_methodn    raise KeyErrornKeyError some_location:30", "severity": "ERROR"}
  

Я создаю handler = logging.StreamHandler(sys.stdout) файл, который затем получает мой формат.

Как мне заставить его получать мое сообщение поверх информации об исключении. Я действительно хочу сохранить StreamHandler, поскольку он использовался для назначения форматера.

Ответ №1:

Была глупая ошибка в форматировании, когда я не включил в сообщение только exc_info.