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
File details
Details for the file pybrake-0.2.0.tar.gz
.
File metadata
- Download URL: pybrake-0.2.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5bb656f29239d77fda365a214b27ea1c7813d01f1270365aa0981a426853d0d5 |
|
MD5 | 906cb4250b79ef638abf23531fb2d2d3 |
|
BLAKE2b-256 | 604bcfb0517ded1be1fd5b7c0c6685d6fcd0972e6c9a1a8525c3728126bd2098 |