将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爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?