Errormator报告客户端 - 支持WSGI和django (http://errormator.com)
项目描述
errormator_client
遗留模式
安装和设置
使用pip安装errormator_client
pip install errormator-client
主要文档位置
Errormator开发者文档包含最新信息,包括在流行的Python Web框架中的实现指南。
使用方法
在您可以在应用程序内部使用客户端之前,您首先需要导航到存储应用程序配置的目录,并执行以下命令
$ENV/bin/python/errormator_client makeini errormator.ini
使用方法(pyramid或其他WSGI管道兼容解决方案如Zope的示例)
在您的INI文件中,您需要添加
[filter:errormator_client] use = egg:errormator_client errormator.config_path = %(here)s/errormator.ini #optional if you don't want to set ERRORMATOR_INI env var [pipeline:main] pipeline = .....your other pipeline entries .... errormator_client app_name
为了最小化配置复杂度,客户端默认将查找ERRORMATOR_INI环境变量,该变量将提供配置文件的绝对路径。
对于Pylons应用,你可以修改config/middleware.py:导入可调用的函数并添加以下行
#exception gathering # CUSTOM MIDDLEWARE HERE (filtered by error handling middlewares) app = make_errormator_middleware(app,config)
并在你的ini文件中添加
errormator.config_path = %(here)s/errormator.ini #optional if you don't want to set ERRORMATOR_INI env var
Errormator客户端提供了慢调用和数据存储定时功能,目前支持以下库
urllib
urllib2
urllib3
requests
pysolr
httplib
大多数使用的dbapi2驱动程序
mongodb
mako模板
jinja2模板
django模板
如果你有原因想要禁用特定库的定时功能,只需将时间值设置为false。
配置errormator和django
对于django框架,有提供独立的兼容中间件。
修改你的设置文件以包含
import errormator_client.client as e_client ERRORMATOR = e_client.get_config()
此外,中间件堆栈需要通过添加额外的中间件进行修改
MIDDLEWARE_CLASSES = ( 'errormator_client.django_middleware.ErrormatorMiddleware', 'django.middleware.common.CommonMiddleware', ...
请注意,errormator中间件应该堆栈中的第一个,以确保正常工作。
运行你的django应用,提供包含配置文件绝对路径的ERRORMATOR_INI环境变量。
修改Pyramid Web框架中的默认scaffold配置
Pyramid 1.3中的默认scaffold有一个名为[app:main]的部分 - errormator客户端期望你使用wsgi pipeline而不是它来定位自己。
实现这一点的最简单方法是修改你的配置文件,使其看起来像这样
[app:main] becomes [app:yourappname]
并且在你配置文件中,在以下[server:main]指令之后应该出现以下指令
[pipeline:main] pipeline = ... your other middleware you may have ... errormator_client yourappname
Pyramid Web框架和Errormator中的异常视图
你还需要将errormator tween添加到你的应用程序中,你可以通过两种方式完成
# by adding following line to your config object config.include('errormator_client.ext.pyramid_tween')
或者通过修改你的ini文件以包含一个新的include
pyramid.includes = errormator_client.ext.pyramid_tween ... other includes you might have ..
敏感数据过滤
默认情况下,客户端会为“password”、“passwd”、“pwd”、“auth_tkt”等关键字将COOKIE、POST、GET清空
可以通过在配置中传递点分隔的模块名称来改变这种行为,以从发送到服务器的结构中过滤所有类型的数据
errormator.filter_callable = foo.bar.baz:callable_name
示例
def callable_name(structure, section=None): structure['request']['SOMEVAL'] = '***REMOVED***' return structure
Errormator将尝试导入foo.bar.baz,并使用callable_name作为接受参数(结构、部分)并返回更改后的数据结构的函数。
请注意,此功能可以用于更改像errormator分组机制之类的东西 - 你可以根据客户端生成的结构中的值设置此变量
errormator_client是BSD许可的,有关详细信息,请参阅LICENSE。
客户端源: https://github.com/AppEnlight/errormator-client-python
项目详情
errormator_client-0.5.15.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4bd2209f0ecfb9d3bc37bd0195f5873b564e60e5021bf1f634e115ce9ad300b0 |
|
MD5 | 8dde4af88081ad9a911e045401123825 |
|
BLAKE2b-256 | 0c199f2c39b2081140de6912a097abca5226e0c09237858944c98fa5fbee91be |