将Raven和Raven JS与金字塔Web应用程序集成。

pyramid_raven的Python项目详细描述


pyramid_raven集成 以及raven python clientraven-js带有 Pyramid网络应用程序。它 提供配置的raven clientrequest.ravenpyramid_layout 面板名为raven-js

乌鸦有built in support for Pyramid applications 通过粘贴过滤器和日志处理程序。 pyramid_raven是 替代集成,在以下情况下有用:

  1. 您可以处理应用程序中的异常,即:您注册了 捕获所有呈现错误页的Exception视图 应用程序,从而防止错误到达wsgi管道
  2. 您还需要记录javascript错误

设置

使用pip

安装
pip install pyramid_raven

在的ini配置中配置raven dsn地址 应用程序:

raven.dsn = https://xxx:yyy@sentry.example.com/1

…或提供SENTRY_DSN environment variable

SENTRY_DSN=http://public:secret@example.com/1

Configure your application 包括包裹:

config.include('pyramid_raven')

配置

.iniconfiguration file中的任何raven.*命名空间设置 将传递给raven client 构造器-尽管你有责任强迫他们 正确类型,例如:

raven.timeout=3

您可以增加(已经相当全面的)请求集 通过添加空间与记录的服务器端异常一起发送的属性 独立的请求属性或方法名(不带参数调用)到:

pyramid_raven.additional_request_properties=foo bar
pyramid_raven.additional_request_methods=baz bam

您还可以覆盖面板模板:

pyramid_raven.panel_tmpl=mypkg:templates/foo.tmpl

使用

您可以使用它记录服务器端错误:

@view_config(context=Exception)
def system_error_view(context, request):
    """Example catch all exception handler."""

    # Notify sentry.
    request.raven.captureException()

    # XXX E.g.: render error page.
    # ...

客户端javascript错误

客户端错误跟踪要求 pyramid_layout已配置 在pyramid_raven之前。

以及客户端错误:

<!-- in production, in the head of your main layout, above all other js -->
${panel('raven-js')}

例如:然后在随后加载的任何脚本中:

throw new Error('This javascript error will be logged.')

注意,如果您从外部域(例如,从 cdn)则许多浏览器不会记录错误,因为 源安全性(不跨域泄漏信息)。你可以 解决这个问题using CORS但是浏览器 在撰写本文时,至少可以说,支持是摇摆不定的。

测试

要运行测试,pip install nose coverage mock,例如:

$ nosetests --with-doctest --with-coverage --cover-tests --cover-package pyramid_raven pyramid_raven
......
Name                      Stmts   Miss  Cover   Missing
-------------------------------------------------------
pyramid_raven                 9      0   100%
pyramid_raven.client         69      0   100%
pyramid_raven.constants       5      0   100%
pyramid_raven.panel          39      0   100%
-------------------------------------------------------
TOTAL                       122      0   100%
----------------------------------------------------------------------
Ran 6 tests in 0.143s

OK

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java中char的用途   swing修复,以便显示可以同时显示十进制数和整数   java给定一个场景,找到拥有的JFXPanel   java JPA 2标准获取路径导航   java如何用JUnit测试这个类?   JSF中的java请求作用域   Spring云Zuul代理背后的java Spring OAuth授权服务器   java限制聚合返回的存储桶大小   java如何在安卓应用程序中请求超级su权限   防止超级关键字的java Checkstyle规则   java 安卓。应用程序。应用程序无法强制转换到安卓。应用程序。在回收器适配器中使用FragmentManager时的活动   使用Java的Twitter广告API   切换到4.0.1版本后,java“JavaMailSenderImpl无法解析为类型”   java没有getter方法可用于名称下bean的属性   java 0/1背包堆空间   java我无法使用断点进行调试   Jar文件名表单java代码   java调用从扩展活动的MainActivity类扩展片段的类片段