简介

为Python加入利于调试的traceback信息。

动机

Python抛出异常时,会显示一些traceback信息。但是,一些时候这些信息并没有很多作用,不足以让你确定问题出现的原因。

这也是你大多数时候使用debugger的原因,你需要知道哪些代码运行,相关的变量当时是什么值...

作用

stackprint1并不是sentry2这种完整的错误监控系统,它只是为Python提供一个改良版的crash信息。

作者说,有时候他会使用这个工具来代替debugger。但是大多数时候,这个工具的作用是代码在别处运行,异常只会被记录到错误日志中的时候,可以帮助稍后判断问题原因。

而且,可以为traceback信息加入彩色。

用法

  • 可以为你整个Python替换traceback方式.

  • 可以将单个项目的python traceback全局替换.

    比如在项目的__init__.py中调用set_excepthook()

    import stackprint
    stackprint.set_excepthook(style='color')
  • 可以指定的异常设置.

    except块中调用show()format()

    try:
    something()
    except:
    # 捕获当前的异常,打印traceback到stderr
    stackprint.show()
    # ...将traceback转换成字符串
    traceback = stackprint.format()
    logger.error(traceback)

热度分析

这个Repo的首个commit日期是2018.9.2。截止到2019.5.2日,这个Repo获得了695star, 15fork.

源码分析

这个库的源代码满满的C风格,很多的函数定义。实现的原理应该是应用了编译原理,tokenize之类的,以我现在的水平很难看懂。

个人评分

类型 评分
实用性 ⭐️⭐️⭐️⭐️
易用性 ⭐️⭐️⭐️⭐️
有趣性 ⭐️⭐️⭐️
代码质量 ⭐️⭐️⭐️⭐️

【AMAD】stackprint -- 为Python加入利于调试的traceback信息的更多相关文章

  1. [转] python程序的调试方法

    qi09 原文 python程序的调试方法 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python de ...

  2. [置顶] 如何在Python IDLE中调试Python代码?

    好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...

  3. Python异常和调试.md

    异常捕获 try 基本概念 我们使用try except来捕获异常,python的try except有几个特点: 不管函数内部嵌套几层,只要在try的范围内就可以被捕获.这句话的意思是一个函数被tr ...

  4. Python帮助函数调试函数 用于获取对象的属性及属性值

    Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...

  5. linux下面升级 Python版本并修改yum属性信息

    最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...

  6. [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】

    [python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...

  7. Python 抓取网页并提取信息(程序详解)

    最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...

  8. python使用post登陆电子科大信息门户并保存登陆后页面

    python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...

  9. Python标准库09 当前进程信息 (部分os包)

    原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...

随机推荐

  1. https://openmaptiles.org/

    docker save klokantech/tileserver-gl:latest -o tileserver-gl.tar docker load -i tileserver-gl.tar do ...

  2. 12-SSMS图形化工具中不允许保存修改的解决办法

    1.报出的警告 2.解决办法 工具-->选项-->设计器--->表设计和数据库设计器-->阻止保存要求重新创建表的更改  的勾去掉就OK 了

  3. HDU 6033 - Add More Zero | 2017 Multi-University Training Contest 1

    /* HDU 6033 - Add More Zero [ 简单公式 ] | 2017 Multi-University Training Contest 1 题意: 问 2^n-1 有几位 分析: ...

  4. jQuery动画之自定义动画

    语法 $(selector).animate({params}, speed, callback); 参数: params: 必选,要执行动画的CSS属性. speed: 可选,执行动画时长. cal ...

  5. echarts热力地图

    <!DOCTYPE HTML> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml" ...

  6. websphere启动报:Could not resolve placeholder 'hibernate.hbm2ddl.auto' in string value "${hibernate.hbm2ddl.auto}"

    websphere启动报/WEB-INF/applicationContext-orm- hibernate.xml]: Could not resolve placeholder 'hibernat ...

  7. ul 加 li 实现 select 下拉选功能

    由于 select 没有选中事件(onchange 事件在内容改变时才会触发,选择同一个条目不会触发),只好用其他控件来实现. <!doctype html> <html lang= ...

  8. 做一个把网页带出来的SpringBoot工程

    JDK:1.8.0_212 IDE:STS4(Spring Tool Suit4 Version: 4.3.2.RELEASE) 工程下载:https://files.cnblogs.com/file ...

  9. [转]html中meta作用

    meta是html语言head区的一个辅助性标签.几乎所有的网页里,我们可以看到类似下面这段的html代码:  <head>  <meta http-equiv="cont ...

  10. [转]Cookie详解

    从事 Web 开发已有近17个月:在学以致用的工作学习里,对于不怎么使用的部分,多少有些雾里探花的窘迫感-差不多是了解一二,然而又非真切的明晰:这就使得再用的时候,总要去再搜索一番:如此颇为难受,倒不 ...