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.
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.
pip install git+https://github.com/airbrake/airbrake-django.git
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!
MIDDLEWARE = (
...,
'airbrake.middleware.AirbrakeNotifierMiddleware'
)
MIDDLEWARE_CLASSES = (
...,
'airbrake.middleware.AirbrakeNotifierMiddleware'
)
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")