引言:
最近在做UI自动化,一直傻傻分不清到底应该用error记录日志还是exception来记录,查了很多资料后,现在终于清楚了,为避免后期又遗忘,写个小文记录一下,也算总结一下下。
一、共同点:
1. logging模块有6个级别,由低到高为NOTSET>>DEBUG>>INFO>>WARNING>>ERROR>>CRITICAL,其实无论是error还是exception,它们的错误等级都是ERROR级别,看下面的事例:
通过终端,我们可以看到日志信息中,错误级别都是ERROR
二、异同点:
1. error级别的只输出错误的异常信息,而没有具体的错误堆栈信息,如果想要排查具体异常仅通过上面的异常message内容是远远不够的
2. exception级别的则不但会输出错误的异常信息,还会显示具体的错误堆栈信息,使得我们在排查问题的时候有更加明确的方向
请看下面的事例:
通过终端,我们可以看到exception比error多输出了错误堆栈信息,这样我们可以更快地通过这些信息去定位错误并解决
三、两者关系
那么error是否可以跟exception一样也输入具体的错误堆栈信息呢?当然可以
我们只需要在error处指定一个参数的值,这个参数就是exc_info=True即可,如下:
现在发现了吗?它们输出的结果是一样的,其实我们通过源码也可以看出来,它们之间的关系:
好啦,其实这两种都可以用,看个人喜好。