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.
Just add python 3 support to this airbrake library.
pip install git+https://github.com/samant/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_URL': 'YOUR_PROJECT_API_URL',
'API_KEY': 'YOUR_PROJECT_API_KEY',
'USE_SSL': True,
'TIMEOUT': 5,
'ENVIRONMENT': 'production',
}
Add airbrake to your middleware:
MIDDLEWARE_CLASSES = ['airbrake.middleware.AirbrakeNotifierMiddleware'] + MIDDLEWARE_CLASSES
Then just restart your server!
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")