默认情况下Python日志exc_info
我正在寻找一种方法,使默认情况下Python日志exc_info,python,python-3.x,logging,Python,Python 3.x,Logging,我正在寻找一种方法,使logging.info,logging.warning,logging.error等在默认情况下设置exc_info=True。此时,重构项目以包含此参数是不可行的,因此我正在寻找一种方法,在项目范围内为日志记录模块设置此参数 我特别寻找一种设置此参数的方法。检索异常的变通方法,如sys.exc\u info或traceback.format\u exc()不是我要找的 此外,如果这不可能,请告诉我。如果有人有类似问题,请发布此答案-摘自 我发现的最简单的方法是在项目开始
logging.info
,logging.warning
,logging.error
等在默认情况下设置exc_info=True
。此时,重构项目以包含此参数是不可行的,因此我正在寻找一种方法,在项目范围内为日志记录模块设置此参数
我特别寻找一种设置此参数的方法。检索异常的变通方法,如sys.exc\u info
或traceback.format\u exc()
不是我要找的
此外,如果这不可能,请告诉我。如果有人有类似问题,请发布此答案-摘自
我发现的最简单的方法是在项目开始时使用functools.partial
。这允许您更改默认参数值,同时仍然能够将特定函数调用的默认参数值设置为False
(如果需要)
import logging
from functools import *
logging.info = partial(logging.info, exc_info=True)
这是可能的,但听起来一点用处都没有。exc信息将是NoneType
和None
,除非您是从except块中登录的。你到底为什么要默认为真/开?因为项目要求超出了我的控制范围。。。这可以通过配置实现,还是必须重载函数本身?我一直在阅读日志文档,但没有找到相关的配置。日志文件到处都是无用的NoneType:None
?是的;logging.Config
中是否存在可以实现此行为的内容,或者我应该在其他地方查找?这只会影响根记录器。在这种情况下,这就是我想要的行为;感谢您明确指出这一点,以防这对其他任何人都是一个问题!