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

  • Post author:
  • Post category:python



【原文链接】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级别的日志。



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}")

执行结果如下所示



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)

执行结果如下:



版权声明:本文为redrose2100原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。