Python----Python中使用logging模块打印异常调用栈的三种方法

【原文链接】Python----Python中使用logging模块打印异常调用栈的三种方法

1、通过logging.exception方法

通过logging.exception方法是最简单的一种,如下所示

import logging

try:
    b=1/0
except Exception as e:
    logging.exception(f"exception occurs when do math compute,traceback is:\n{e}")

执行结果如下所示,可以看出,这里使用的logging.exception方法,打印出来的是Error级别的日志。
Python----Python中使用logging模块打印异常调用栈的三种方法_第1张图片

2、通过logging.info方法

在有些情况下,期望报出的异常信息以及异常调用栈不打印Error级别的日志,而是打印info级别的,比如在做一些容错或者重试机制时,通常不希望在重试或者容错过程中报错误信息,此时注意logging的默认级别为warning,因此为了显示info级别的日志,需要首先想logging的日子级别设置为info,此时如果希望打印异常调用栈,则需要通过traceback模块来辅助实现,代码如下所示。

import logging
import traceback
logging.getLogger().setLevel(logging.INFO)

try:
    b=1/0
except Exception as e:
    err_msg=traceback.format_exc()
    logging.info(f"exception occurs when do math compute,traceback is:\n{err_msg}")

执行结果如下所示
Python----Python中使用logging模块打印异常调用栈的三种方法_第2张图片

3、通过logging.error方法

通过logging.error的方式只需要使用exe_info=True参数即可,代码如下所示

import logging
import traceback
logging.getLogger().setLevel(logging.INFO)

try:
    b=1/0
except Exception as e:
    err_msg=traceback.format_exc()
    logging.error(f"exception occurs when do math compute",exc_info=True)

执行结果如下:
Python----Python中使用logging模块打印异常调用栈的三种方法_第3张图片

你可能感兴趣的:(Python,python,异常)