使用sys.stdout时仅打印异常信息

问题描述

我的打印代码如下:

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_method\n    raise KeyError\nKeyError some_location:30","severity": "ERROR"}

我制作一个handler = logging.StreamHandler(sys.stdout),然后接收我的格式。

如何使其在异常信息之上接收到我的消息。我确实要保留StreamHandler,因为它曾经用于分配格式程序。

解决方法

在格式化过程中,我没有只包含exc_info消息,这是一个愚蠢的错误。