airbrake.io的Python SDK
项目描述
airbrake-python
注意. 建议Python 3.4+使用新的 Airbrake Python通知器,它支持异步API和代码块。Python 2.7用户应继续使用此通知器。
Airbrake 的Python集成,可以快速轻松地集成到现有的代码中。
import airbrake
logger = airbrake.getLogger()
try:
1/0
except Exception:
logger.exception("Bad math.")
airbrake-python最有效的方法是通过其日志处理器,并使用Airbrake V3 API进行错误报告。
安装
要安装airbrake-python,运行
$ pip install -U airbrake
setup
通过设置一些环境变量来配置是最简单的方法
export AIRBRAKE_API_KEY=*****
export AIRBRAKE_PROJECT_ID=12345
export AIRBRAKE_ENVIRONMENT=dev
完成后!
否则,您可以通过将这些值作为参数传递给getLogger()
辅助函数来实例化您的AirbrakeHandler
import airbrake
logger = airbrake.getLogger(api_key=*****, project_id=12345)
try:
1/0
except Exception:
logger.exception("Bad math.")
默认情况下,airbrake会捕获并发送未捕获的异常。要避免这种行为,请使用send_uncaught_exc选项:logger = airbrake.getLogger(api_key=*****, project_id=12345, send_uncaught_exc=False)
为Airbrake On-Premise和其他兼容的后端(例如Errbit)进行设置
Airbrake 企业版和自托管替代方案,如Errbit,提供兼容的API。
您可以通过以下方式设置一个不同于默认值(https://api.airbrake.io
)的端点
- 设置环境变量
export AIRBRAKE_HOST=https://self-hosted.errbit.example.com/
- 或将
host
参数传递给getLogger()
辅助函数
import airbrake
logger = airbrake.getLogger(api_key=*****, project_id=12345, host="https://self-hosted.errbit.example.com/")
将AirbrakeHandler添加到您现有的日志记录器中
import logging
import airbrake
yourlogger = logging.getLogger(__name__)
yourlogger.addHandler(airbrake.AirbrakeHandler())
默认情况下,AirbrakeHandler
仅处理ERROR(40)级别及以上的日志
其他选项
该库还有更多选项可供配置。
例如,您可以通过设置环境变量来为错误添加更多上下文。一种方法是将AIRBRAKE_ENVIRONMENT环境变量设置。
export AIRBRAKE_ENVIRONMENT=staging
或者,您可以在实例化日志记录器时更明确地设置它。
import airbrake
logger = airbrake.getLogger(api_key=*****, project_id=12345, environment='production')
可用选项包括
- 环境,默认为环境变量
AIRBRAKE_ENVIRONMENT
- 主机,默认为环境变量
AIRBRAKE_HOST
或https://api.airbrake.io - root_directory,默认为None
- timeout,默认为5。(每个请求超时前的秒数)
- send_uncaught_exc,默认为True(是否发送未捕获的异常)
为您的异常提供更多上下文
import airbrake
logger = airbrake.getLogger()
def bake(**goods):
try:
temp = goods['temperature']
except KeyError as exc:
logger.error("No temperature defined!", extra=goods)
设置严重性
[严重性][什么是严重性]允许对错误的严重性进行分类。默认情况下,它设置为error
。要重新定义严重性,只需使用所需严重值调用build_notice
。例如
notice = airbrake.build_notice(exception, severity="critical")
airbrake.notify(notice)
在不使用日志记录器的情况下使用此库
您可以直接创建通知器的实例,并在异常块中发送错误。
from airbrake.notifier import Airbrake
ab = Airbrake(project_id=1234, api_key='fake')
try:
amazing_code()
except ValueError as e:
ab.notify(e)
except:
# capture all other errors
ab.capture()
手动运行测试
创建您的环境并安装测试要求
virtualenv venv
source venv/bin/activate
pip install .
python setup.py test
要通过nose(单元/集成测试)运行
source venv/bin/activate
pip install -r ./test-requirements.txt
source venv/bin/activate
nosetests
运行所有测试,包括多环境语法和覆盖率测试。
pip install tox
tox -v --recreate
建议确保tox可以通过,因为CI运行此操作。在合并任何PR之前,tox需要通过。
实现airbrake-python所使用的airbrake.io API文档在此:https://airbrake.io/docs/api/
[[什么是严重性]: https://airbrake.io/docs/airbrake-faq/what-is-severity/]
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装软件包的信息。
源分布
构建分发版
airbrake-2.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d35e909f7ab4110c09edaca85ea1a9eb0782c20cdd1efa759bf1af7f2cb40b0f |
|
MD5 | c5770d9fad150523e3f6c6b28833a625 |
|
BLAKE2b-256 | 1287cb78d505ec9991089fe65c6ea600688669ec4aeabbb9e267f7c6af778c75 |
airbrake-2.2.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8f1c16495a0e428cf8862f2a7fac5aff79935887f938657329c880dcafc4affb |
|
MD5 | 288707854ea1035f277fce64107b739b |
|
BLAKE2b-256 | d6db58fba94665b1f447aa41059b581c491de39186c39efe0af3f51449a3cd9a |