美文网首页
python logger 全局捕获异常/错误信息

python logger 全局捕获异常/错误信息

作者: RedB | 来源:发表于2020-07-03 16:06 被阅读0次

在Python开发中,我们经常需要用logger将日志写入到文件。我们通常也需要将控制台中见到的所有异常信息都写入到文件中,比如一个经典的异常如下:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'a' is not defined

但是默认情况下,除非我们在try-except的except中调用logger手动记录,否则我们会惊讶地发现,异常信息Traceback只在控制台打印了,而日志文件中却没有。

这种情况下我们就需要用到sys.excepthook:每次有新的且未被捕获的exception的时候,sys.excepthook就会被调用。python允许我们重写这个方法,来实现我们自己对异常的处理。

代码如下:

import sys
import logging

logger = logging.getLogger(__name__)
handler = logging.StreamHandler(stream=sys.stdout)
logger.addHandler(handler)

def handle_exception(exc_type, exc_value, exc_traceback):
    if issubclass(exc_type, KeyboardInterrupt):
        sys.__excepthook__(exc_type, exc_value, exc_traceback)
        return
    logger.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback)) # 重点

sys.excepthook = handle_exception # 重点

if __name__ == "__main__":
    raise RuntimeError("Test unhandled")

转自:https://stackoverflow.com/questions/6234405/logging-uncaught-exceptions-in-python/16993115#16993115
(部分文字引用自:http://www.zhangdongshengtech.com/article-detials/282

我不是程序员,我只是stackoverflow的搬运机~

相关文章

  • python logger 全局捕获异常/错误信息

    在Python开发中,我们经常需要用logger将日志写入到文件。我们通常也需要将控制台中见到的所有异常信息都写入...

  • 18,添加错误页面跳转

    3,拦截错误信息 //捕获全局异常的另外一个方法

  • Spring MVC实现REST API 之全局异常统一处理

    全局异常统计处理 定义请求出错时候返回的错误信息 全局捕获异常 UsersController 抛出错误非常简单,...

  • Spring Boot——全局捕获异常

    1.全局捕获异常:进行全局捕获异常可以去捕获一些运行时候的错误,将这些错误信息处理掉,而不去返回给用户。 2.代码...

  • springboot2.x 全局异常处理的正确方式

    前言 在web项目中,异常堆栈信息是非常敏感的。因此,需要一个全局的异常处理,捕获异常,给客户端以友好的错误信息提...

  • python3.7异常小记

    首先上示例代码: 这段代码包含了,异常分支类型捕获,无异常捕获,有无异常都会捕获的执行逻辑。 捕获全局异常 对入口...

  • 全局异常捕获

    1. 创建MyApplication extends MultiDexApplication 在oncreate初...

  • 全局异常捕获

    /** * 1.全局捕获异常类 * 2.@authorDell * 3.@date2017/9/19 17:03 ...

  • 全局异常捕获

    引言 现代前端应用面临的浏览器环境是非常复杂的,尤其是移动端页面。 面对如此多样的浏览器环境,我们需要一种异常监控...

  • 全局异常处理优先级

    如果controller层被注解@RestControllerAdvice,进行了异常捕获,那么全局异常捕获将不生效。

网友评论

      本文标题:python logger 全局捕获异常/错误信息

      本文链接:https://www.haomeiwen.com/subject/inajqktx.html