OOPS wsgi 中间件。
项目描述
版权所有 (c) 2011, Canonical Ltd
本程序是自由软件:您可以按照自由软件基金会发布的GNU较小通用公共许可证的条款重新分发和/或修改它,版本3仅限。
本程序是希望它会有用的,但没有任何保证;甚至没有关于适销性或适用于特定目的的暗示性保证。有关详细信息,请参阅GNU较小通用公共许可证。
您应该已收到一份GNU较小通用公共许可证副本。如果没有,请参阅 <https://gnu.ac.cn/licenses/>。GNU较小通用公共许可证版本3(请参阅文件LICENSE)。
oops_wsgi包提供了wsgi网络服务器与oops错误报告系统(http://pypi.python.org/pypi/oops)之间的集成粘合剂。
依赖关系
Python 2.6+ 或 3.3+
测试依赖关系
subunit (http://pypi.python.org/pypi/python-subunit)(可选)
testtools (http://pypi.python.org/pypi/testtools)
用法
oops_wsgi提供与oops.Config的集成,允许您的Web应用程序中的错误被集中收集,包括跟踪和其他诊断信息。
通常,如下所示
设置您的配置
>>> from oops import Config >>> config = Config()
请注意,您可能至少需要一个发布者,否则您的报告将被丢弃。
将wsgi特定的钩子添加到配置中
>>> oops_wsgi.install_hooks(config)
这是一个方便函数 - 您可以从oops_wsgi.hooks中选择或选择所需的创建或筛选钩子。
创建您的wsgi应用程序,然后将其包装
>>> app = oops_wsgi.make_app(app, config)
如果有任何异常通过此中间件冒泡,则记录一个oops。如果请求体尚未开始,则显示一个自定义页面,显示OOPS ID,并吞下异常。不会触发OOPS的异常表明正常情况,例如套接字的文件结束。如果oops被筛选,或者没有配置发布者,则异常将向上堆栈传播 - oops中间件在这些情况下无法做任何有用的事情。(例如,如果您在wsgi堆栈中oops中间件之上有一个自定义404中间件,并且筛选404异常,以便它们不会创建报告,那么如果oops中间件执行除了传播异常之外的操作,则您的自定义404中间件将无法正常工作。)
如果请求体已经开始,那么无法将OOPS ID传达给客户端,并且异常将向上传播到wsgi应用程序堆栈。
如果您提供一个接受(environ,report)并返回发送给客户端的HTML的辅助函数,则可以自定义错误页面。
>>> def myerror_html(environ, report): ... return '<html><body><h1>OOPS! %s</h1></body></html>' % report['id'] >>> app = oops_wsgi.make_app(app, config, error_render=myerror_html)
或者,您可以为报告提供字符串模板进行格式化。
>>> json_template='{"oopsid" : "%(id)s"}' >>> app = oops_wsgi.make_app(app, config, error_template=json_template)
有关更多信息,请参阅pydoc oops_wsgi。
安装
在所有依赖项都可用的环境中运行setup.py,或将工作目录添加到您的PYTHONPATH。
开发
上游开发发生在https://launchpad.net/python-oops-wsgi。要设置开发的工作区域,如果依赖项不可立即获得,您可以使用./bootstrap.py创建bin/buildout,然后使用bin/py获取具有依赖项的python解释器。
要运行测试,请使用您选择的运行器,测试套件是oops_wsgi.tests.test_suite。
例如
$ bin/py -m testtools.run oops_wsgi.tests.test_suite
如果您有testrepository,可以使用它来运行测试
$ testr run
项目详情
oops_wsgi-0.0.15.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e4bd7ae45ba209f6b41accf39714cd510c498547366c19e0b0bfed02b47d5b26 |
|
MD5 | 352024d4af9d3921bed2cfb32330371f |
|
BLAKE2b-256 | 45527047442ab9f21588b7ffc100fc71304b0aba938668549d2f89d242357746 |