将raven和raven-js集成到Pyramid网络应用程序中。
项目描述
pyramid_raven 将 raven python客户端 和 raven-js 集成到 Pyramid 网络应用程序中。它提供了一个配置好的 raven客户端 在 request.raven 和一个名为 raven-js 的 pyramid_layout 面板。
Raven 通过粘贴过滤器和管理员处理程序内置了对Pyramid应用程序的支持。 pyramid_raven 是另一种集成方式,当您在应用程序内部处理异常时非常有用
您在应用程序内部处理异常 - 即:您注册了一个捕获所有 Exception 视图,在您的应用程序中渲染一个错误页面,从而防止错误到达WSGI管道
您还希望记录JavaScript错误
设置
使用 pip 进行安装
pip install pyramid_raven
在应用程序的 INI 配置中配置 Raven DSN 地址
raven.dsn = https://xxx:yyy@sentry.example.com/1
… 或提供 SENTRY_DSN 环境变量
SENTRY_DSN=http://public:secret@example.com/1
配置应用程序 以包含该软件包
config.include('pyramid_raven')
配置
您应用程序的 .ini 配置文件中的任何 raven.* 命名空间设置都将传递给 raven 客户端 构造函数 - 尽管将这些设置强制转换为正确类型是您的责任,例如
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_raven 之前先配置 pyramid_layout
以及客户端错误
<!-- 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)加载脚本,则由于跨源安全问题,许多浏览器不会记录错误(不会在域之间泄露信息)。您可以通过使用 CORS 来解决这个问题 使用 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
项目详细信息
pyramid_raven-0.2.2.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 9355728207d436979bd42db12c9b5cddb3c053afda61e87abb054275e5d249db |
|
MD5 | 81d0d775e6b8c1a9ace8eaa059a0bc26 |
|
BLAKE2b-256 | ef2895bd5200aa4fd8cb667b98f315e68af732afc0b4e0ccf0b7a72712e6d943 |