【AMAD】stackprint -- 为Python加入利于调试的traceback信息
简介
为Python加入利于调试的traceback信息。

动机
Python抛出异常时,会显示一些traceback信息。但是,一些时候这些信息并没有很多作用,不足以让你确定问题出现的原因。
这也是你大多数时候使用debugger的原因,你需要知道哪些代码运行,相关的变量当时是什么值...
作用
stackprint1并不是sentry2这种完整的错误监控系统,它只是为Python提供一个改良版的crash信息。
作者说,有时候他会使用这个工具来代替debugger。但是大多数时候,这个工具的作用是代码在别处运行,异常只会被记录到错误日志中的时候,可以帮助稍后判断问题原因。
而且,可以为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信息的更多相关文章
- [转] python程序的调试方法
qi09 原文 python程序的调试方法 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序 源码例子 例如,有模拟税收计算的程序: #!/usr/bin/python de ...
- [置顶] 如何在Python IDLE中调试Python代码?
好久没有用Python了,居然忘记了怎么在Python IDLE中调试Python代码.百度了一下,然后还是写下来吧,以免以后又忘记了. 1. Set break point in the sourc ...
- Python异常和调试.md
异常捕获 try 基本概念 我们使用try except来捕获异常,python的try except有几个特点: 不管函数内部嵌套几层,只要在try的范围内就可以被捕获.这句话的意思是一个函数被tr ...
- Python帮助函数调试函数 用于获取对象的属性及属性值
Python帮助函数调试函数 用于获取对象的属性及属性值 刚接触Python,上篇 <Python入门>第一个Python Web程序--简单的Web服务器 中调试非常不方便,不知道对象详 ...
- linux下面升级 Python版本并修改yum属性信息
最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...
- [python] 常用正则表达式爬取网页信息及分析HTML标签总结【转】
[python] 常用正则表达式爬取网页信息及分析HTML标签总结 转http://blog.csdn.net/Eastmount/article/details/51082253 标签: pytho ...
- Python 抓取网页并提取信息(程序详解)
最近因项目需要用到python处理网页,因此学习相关知识.下面程序使用python抓取网页并提取信息,具体内容如下: #---------------------------------------- ...
- python使用post登陆电子科大信息门户并保存登陆后页面
python使用post登陆电子科大信息门户并保存登陆后页面 作者:vpoet mail:vpoet_sir@163.com #coding=utf-8 import HTMLParser impor ...
- Python标准库09 当前进程信息 (部分os包)
原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...
随机推荐
- 学习如何写一个vue插件【入门篇】
#### 疑答 1.市面上已经有那么多插件可用,为什么还要造轮子?学习.借鉴思想.应用到开发 2.能否在项目中使用?与网上插件使用相同 更新维护问题怎么解决? 自身动力,使用者反馈等 #### 准 ...
- c语言结构体以及结构体指针的使用
结构体: 正常定义一个结构体: typedef struct node{ ]; int len; }Seq,*llink; 定义结构体指针: Seq *s;或者llink t;之后关于s与t的用法,其 ...
- 逻辑卷----LVM的基础和应用
逻辑卷管理器 Logical Volume Manager-------逻辑卷宗管理器.逻辑扇区管理器.逻辑磁盘管理器,是Linux核心所提供的逻辑卷管理(Logical volume managem ...
- Swagger2常用注解和使用方法
一 引入maven依赖 <!--整合Swagger2--> <dependency> <groupId>com.spring4all</groupId&g ...
- bootstrap与IE、360浏览器的兼容问题
bootstrap样式在IE.360浏览器无法正常显示,之前使用的一个基于bootstrap的插件在IE.360浏览器也无法正常使用. bootstrap3支持的浏览器有: Chrome (Mac.W ...
- PHP基础教程-APACHE
兄弟连:如何配置APACHE.首先,安装并配置PHP3 1.解开压缩包到你喜欢的目录如:C:PHP3 2.把C:php3php3.ini-inst文件改名成PHP3.INI并拷贝到C:windows ...
- nodeJS环境搭建
1. Node.js是什么 1.1 Node.js是一个基于Chrome V8引擎的[JavaScript运行环境]. Node.js使用了一个事件驱动.非阻塞式I/O 的模型. 1.2 Node.j ...
- Trie树(c++实现)——转载自jihite的博客
Trie树(c++实现) 原理 先看个例子,存储字符串abc.ab.abm.abcde.pm可以利用以下方式存储 上边就是Trie树的基本原理:利用字串的公共前缀来节省存储空间,最大限度的减少无谓 ...
- javaScript用正则来获取url传递的参数
用window.location.href获取url再js正则来获得需要的参数: 这个正则有多种写法,这里我选择这样写,要查找的属性名我直接以参数的形式传进去,用正则查找,以"?&# ...
- HDU 5831 Rikka with Parenthesis II ——(括号匹配问题)
用一个temp变量,每次出现左括号,+1,右括号,-1:用ans来记录出现的最小的值,很显然最终temp不等于0或者ans比-2小都是不可以的.-2是可以的,因为:“))((”可以把最左边的和最右边的 ...