Skip to content
This repository has been archived by the owner on Jul 15, 2020. It is now read-only.
/ airbrake-django Public archive

A Django project for Airbrake

License

Notifications You must be signed in to change notification settings

airbrake/airbrake-django

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Note. Python 3.4+ users are strongly advised to try new Airbrake Python notifier which supports async API and code hunks. Python 2.7 users should continue to use this notifier.

Overview

When I went to implement Airbrake in Sprint.ly I found two projects that looked like they might do the trick: django-airbrake, which was forked from the dormant django-hoptoad and Pytoad which wasn't made for Django. In the end, I decided to use bits and pieces of the two as the older django-airbrake wasn't working with the newer API and Pytoad didn't have any Django sugar.

Install airbrake-django from github using pip

pip install git+https://github.com/airbrake/airbrake-django.git

Configure airbrake in your settings.py

To configure airbrake you will need to add airbrake to your INSTALLED_APPS and create the AIRBRAKE dictionary.

Add airbrake to INSTALLED_APPS in your settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    # ...
    'airbrake'
)

Create the AIRBRAKE dictionary in your settings.py for project:

# Airbrake settings
AIRBRAKE = {
    'API_KEY': 'YOUR_PROJECT_API_KEY',
    'TIMEOUT': 5,
    'ENVIRONMENT': 'production',
    'FILTERED_EXCEPTIONS': (Http404,)
}

Then just restart your server!

Automatically sending errors to airbrake

New-style (introduced in Django 1.10):
MIDDLEWARE = (
    ...,
    'airbrake.middleware.AirbrakeNotifierMiddleware'
)
Old-style:
MIDDLEWARE_CLASSES = (
    ...,
    'airbrake.middleware.AirbrakeNotifierMiddleware'
)

Manually sending errors to airbrake

This example illustrates sending an error to Airbrake in a try catch.

# hello.py
from django.http import HttpResponse
from airbrake.utils.client import Client

def hello_errors(request):
    try:
        1/0
    except Exception as error:
        airbrake = Client()
        airbrake.notify(error, request)

    return HttpResponse("Hello Erorrs")