跳转到主要内容

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)之间的集成粘合剂。

依赖关系

测试依赖关系

用法

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 (9.6 kB 查看哈希值)

上传时间: 源代码

由以下提供支持