错误位客户端
errbit-reporter的Python项目详细描述
向errbit报告异常的客户端。
安装
pip install errbit_reporter
用法
importerrbit_reporteraserrbitconfig=errbit.Configuration(api_key='491b8cbb777b051df1406ae0bcdbee2c',errbit_url='http://errbit.yourserver.com')client=errbit.Client(config)withclient.notify_on_exception():your_code_here()
为了避免在开发过程中发送异常,只需使用none 对于errbit_url。例如:
config=errbit.Configuration(api_key='491b8cbb777b051df1406ae0bcdbee2c',errbit_url=None,environment_name='development')
可以为错误提供其他上下文。例如:
context={'request_url':'http://example.com/account/signup','component':'AccountController','action':'signup','params':{'user':{'name':'dylan'}},'cgi_data':{'REQUEST_METHOD':'POST','HTTP_USER_AGENT':'curl'},'session'{'session_id':'6df95c0296cee016fb672af9310667e24dca066909a723dd6439369bb82911f3'}}withclient.notify_on_exception(**context):your_code_here()
也可以在没有上下文管理器的情况下发送通知以获取 可用于记录errbit通知url的通知元数据。
try:your_code_here()except:notice_metadata=client.notify()print(notice_metadata.url)
默认情况下,异常信息取自sys.exc_info(), 但是exc_info也可以作为第一个参数传递,并且 上下文可以使用与 异常时通知。
在分布式系统中(例如Spark) 手动指定回溯是很有用的。为了 例如,回溯可以由本地和远程两部分组成 进程堆栈跟踪,即使远程进程是在 另一种语言。
exc_type,exc_value,exc_traceback=sys.exc_info()backtrace=traceback.extract_tb(exc_traceback)notice=errbit.Notice(config,exc_type.__name__,str(exc_value),backtrace)client.send_notice(notice)
测试套件
make test
版权所有
版权所有(c)2014“Shopify公司”。有关详细信息,请参见许可证。