用于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) 及以上

其他选项

有更多选项可用于配置此库

例如,可以设置环境以向 错误。一种方法是通过设置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/]

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
SpringWeb中的java更新/通知其他用户   java Lambda性能测试   java Bukkit插件:空白符号   java在按下按钮后改变彩色正方形的大小   javajavac相当于“D”?   java序列化接口   属性无法从属性文件返回值   java我应该使用什么查询来使用Jsoup从html页面提取符号?   java Android Studio项目结构问题   JAVA方法和返回值/公共变量(基础)   java将NativeQuery映射到POJO   java如何在下面的程序中消除NumberFormatException?   在java中获取链表与数组中的对象   java Android Firebase将用户发送到聊天室