错误数据异常记录。
errordite的Python项目详细描述
这个应用程序提供了python和errodite(一个集中的 错误日志和管理服务,与哨兵不同,但有更多 围绕错误分类和管理的功能。
应用程序以标准python日志处理程序的形式提供。 为了用errordite记录异常,只需使用logging.error或 logging.exception在except块中:
>>> import logging >>> import errordite >>> logger = logging.getLogger(__name__) >>> logger.addHandler(errordite.ErrorditeHandler('token')) >>> try: ... raise Exception() ... except: ... # handler uses sys.exc_info() so no need to pass ... # exception info explicitly. ... logging.error("Something went wrong") >>>
实现的细节最好在代码本身中找到-这是公平的 不言而喻。
有关sys.exc_info()和sys.exc_clear()的重要信息
这个日志处理程序被显式地设计为捕获和发布python
例外情况。它不是一个通用的记录器,因此它依赖于
sys.exc_info()以确定是否有要报告的内容。这个罐头
如果将项目记录为没有
附加了显式异常,但以前的异常已被吞入。 在下面的例子中,我们捕捉并吞下了DoNoToTristor错误
因为它是已知的代码路径: 但是,异常尚未清除,如果调用sys.exc_info()
进一步,它仍然会返回DoNoTeXistor错误。再往前一点
我们的示例记录了一个业务异常(尝试签出否定的
篮值),但不附加任何显式python错误: ^ {STR 1 } $:在这种情况下,将记录错误异常(DoNoTeXIST)信息。< /强> 解决方法是在except块中调用sys.exc_clear()。
以便显式删除异常。python文档声明: 这表明不建议这样做,但是,它们会继续声明: 作者认为这描述了我们的困境,
因此,sys.exc_clear()的使用是合理的。(也就是说,你也可以
想调查为什么要记录非异常的错误,如果
您会看到这种情况发生。) 该库在pypi上作为“errodite”提供,因此可以是
使用PIP安装: 安装后,您可以导入处理程序: 要设置有效的errordITehandler必须传入
errodite api令牌,您可以通过在http://www.errordite.com注册获得它 包中有测试-它们可以使用unittest: 注意,这些测试会通过连线记录真正的异常,因此您需要
连接到网络以运行它们。您还需要设置本地环境
变量(errordite_token),在测试套件中选取。 如果您是*nix,您可以在命令行中传递此信息: 如果您在windows上,则需要将其显式设置为env var: (这是一种技术,用于防止在
公共回购)try:
.. do something that raises a known error - e.g. model.DoesNotExist
except model.DoesNotExist:
.. we half expected this, so just ignore it for now
.. continue on with the method
.. some time later
if basket_total < 0:
logger.error("Someone tried to hack our checkout.")
This function is only needed in only a few obscure situations.
These include logging and error handling systems that report information
on the last or current exception.
安装
$ pip install errordite
>>> import errordite
>>> handler = errordite.ErrorditeHandler("your_errordite_token")
配置
测试
$ python -m unittest errordite.tests
$ ERRORDITE_TOKEN=123 python -m unittest errordite.tests
c:\> set ERRORDITE_TOKEN=123
c:\> python -m unittest errordite.tests
推荐PyPI第三方库