Python exception notifier for Airbrake
Project description
Installation
pybrake requires Python 3.4+.
pip install -U pybrake
Usage
Creating notifier:
import pybrake
notifier = pybrake.Notifier(project_id=123,
project_key='FIXME',
environment='production')
Sending errors to Airbrake:
try:
raise ValueError('hello')
except Exception as err:
notifier.notify(err)
By default notify sends errors asynchronously using ThreadPoolExecutor and returns a concurrent.futures.Future, but synchronous API is also available:
notice = notifier.notify_sync(err)
if 'id' in notice:
print(notice['id'])
else:
print(notice['error'])
You can also set custom params on all reported notices:
def my_filter(notice):
notice['params']['myparam'] = 'myvalue'
return notice
notifier.add_filter(my_filter)
Or ignore notices:
def my_filter(notice):
if notice['context']['environment'] == 'development':
# Ignore notices in development environment.
return None
return notice
notifier.add_filter(my_filter)
Logging integration
pybrake provide logging handler that sends your logs to Airbrake:
import logging
import pybrake
airbrake_handler = pybrake.LoggingHandler(notifier=notifier,
level=logging.ERROR)
logger = logging.getLogger('test')
logger.addHandler(airbrake_handler)
logger.error('something bad happened')
Django integration
First you need to add pybrake config to your Django settings.py file:
AIRBRAKE = dict(
project_id=123,
project_key='FIXME',
)
Then you can activate Airbrake middleware:
MIDDLEWARE = [
...
'pybrake.django.AirbrakeMiddleware',
]
And configure logging handler:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'handlers': {
'airbrake': {
'level': 'ERROR',
'class': 'pybrake.LoggingHandler',
},
},
'loggers': {
'app': {
'handlers': ['airbrake'],
'level': 'ERROR',
'propagate': True,
},
},
}
Disabling pybrake logs
pybrake logger can be silenced using following code:
import logging
logging.getLogger("pybrake").setLevel(logging.CRITICAL)
Development
Run tests:
pip install -r test-requirements.txt
pytest
Upload to PyPI:
python setup.py sdist upload
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
pybrake-0.2.0.tar.gz
(9.8 kB
view hashes)