出错时在 python 中记录相关局部变量
Log related local variable in python on error
假设在生产应用中
一条python行res_json = res.json()["data"]
触发 KeyError:'data'
有什么方法可以有效地在 python 记录器中巧妙地记录 res
吗?
对于keyerror,我们通常希望看到整个dict并调试为什么data属性不在里面。
我真的厌倦了“一旦发现异常,就在触发错误的行之前插入一条日志语句”
在生产环境中,很难使用ipdb之类的工具手动回溯并打印出变量。
您可以将 try/except
与 raise
结合使用,以确保在完成特定于站点的日志记录后继续引发异常:
try:
res_json = res.json()["data"]
except KeyError as e:
logger.warning(f"{e}: res = {res}")
raise
假设在生产应用中
一条python行res_json = res.json()["data"]
触发 KeyError:'data'
有什么方法可以有效地在 python 记录器中巧妙地记录 res
吗?
对于keyerror,我们通常希望看到整个dict并调试为什么data属性不在里面。
我真的厌倦了“一旦发现异常,就在触发错误的行之前插入一条日志语句”
在生产环境中,很难使用ipdb之类的工具手动回溯并打印出变量。
您可以将 try/except
与 raise
结合使用,以确保在完成特定于站点的日志记录后继续引发异常:
try:
res_json = res.json()["data"]
except KeyError as e:
logger.warning(f"{e}: res = {res}")
raise