用于airbrake.io的python sdk
airbrake的Python项目详细描述
注意。建议python 3.4+使用支持异步的新Airbrake Python notifier API和代码。Python2.7用户应该继续使用这个 通知者。
Airbrake针对python的集成 并且很容易插入到现有代码中。
importairbrakelogger=airbrake.getLogger()try:1/0exceptException:logger.exception("Bad math.")
通过它的 logging处理程序,以及 使用Airbrake V3 API表示错误 报告。
安装
要安装airbrake python,请运行:
$ pip install -U airbrake
设置
最简单的设置方法是使用几个环境变量:
exportAIRBRAKE_API_KEY=***** exportAIRBRAKE_PROJECT_ID=12345exportAIRBRAKE_ENVIRONMENT=dev
你完了
否则,您可以通过传递这些 值作为getLogger()helper的参数:
importairbrakelogger=airbrake.getLogger(api_key=*****,project_id=12345)try:1/0exceptException:logger.exception("Bad math.")
默认情况下,airbrake将捕获并发送未捕获的异常。避免 请使用send_uncaught_exc选项: logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)
为本地和其他兼容的后端(例如errbit)设置空气制动系统
空气制动器Enterprise和自托管 替代品,如Errbit, 提供兼容的api。
您可以配置一个不同于默认端点的端点 (https://api.airbrake.io)由以下任一方:
- 设置环境变量:
exportAIRBRAKE_HOST=https://self-hosted.errbit.example.com/
- 或者将host参数传递给getLogger()助手:
importairbrakelogger=airbrake.getLogger(api_key=*****,project_id=12345,host="https://self-hosted.errbit.example.com/")
将Audio BrutkHunter添加到现有的记录器importloggingimportairbrakeyourlogger=logging.getLogger(__name__)yourlogger.addHandler(airbrake.AirbrakeHandler())
默认情况下,``AirbrakeHandler``只处理日志级别错误(40)
及以上
importloggingimportairbrakeyourlogger=logging.getLogger(__name__)yourlogger.addHandler(airbrake.AirbrakeHandler())
默认情况下,``AirbrakeHandler``只处理日志级别错误(40) 及以上
其他选项
有更多选项可用于配置此库
例如,可以设置环境以向 错误。一种方法是通过设置AIRBRAKE_ENVIRONMENT env var
export AIRBRAKE_ENVIRONMENT=staging
或者在实例化记录器时可以更明确地设置它。
importairbrakelogger=airbrake.getLogger(api_key=*****,project_id=12345,environment='production')
可用选项有:-environment,默认为env var AIRBRAKE_ENVIRONMENT-主机,默认为env varAIRBRAKE_HOST 或者https://api.airbrake.io-root_目录,默认为none-timeout, 默认为5。(每个请求超时前的秒数)- 发送未通知,默认为真(无论是否发送未通知 例外)
为异常提供更多上下文
importairbrakelogger=airbrake.getLogger()defbake(**goods):try:temp=goods['temperature']exceptKeyErrorasexc:logger.error("No temperature defined!",extra=goods)
设置严重性
[严重性][严重性是什么]允许对错误的严重程度进行分类。 默认情况下,设置为error。重新定义严重性 build_notice具有所需的严重性值。例如:
notice=airbrake.build_notice(exception,severity="critical")airbrake.notify(notice)
在不使用记录器的情况下使用此库
您可以直接创建通知程序的实例,并发送错误 在异常块内
fromairbrake.notifierimportAirbrakeab=Airbrake(project_id=1234,api_key='fake')try:amazing_code()exceptValueErrorase:ab.notify(e)except:# capture all other errorsab.capture()
手动运行测试
创建环境并安装测试要求
virtualenv venv source venv/bin/activate pip install . python setup.py test
通过鼻子运行(单元/集成测试):
source venv/bin/activate pip install -r ./test-requirements.txt source venv/bin/activate nosetests
运行所有测试,包括多环境语法和覆盖率测试。
pip install tox tox -v --recreate
有人建议确保毒物会通过,因为ci运行这个。毒物需要 在合并任何prs之前通过。
用于实现 空气制动器Python在这里:https://airbrake.io/docs/api/
[什么是严重性]: https://airbrake.io/docs/airbrake-faq/what-is-severity/]