Skip to main content

Honeybadger extension that can log exceptions raised by Flask or Celery, adding more context than the original honeybadger python library.

Project description

CircleCI

Honeybadger-Extensions extend current Honeybadger Python library to better support Celery & Flask.

It offers:

  • Improved reporting, including details for component, action etc.
  • Easier Honeybadger via Flask’s or Celery’s configuration object.
  • (Optional) Automatic reporting of errors detected by Celery or Flask.

Features

Honeybadger-Extensions provides the install_celery_handler() function which can be used at any time which can be used to initialize both Honeybadger & allow improved Honeybadger reporting. It also offers the HoneybadgerFlask Flask extension that adds more information to Honeybadger logging, as well as automatic logging of errors raised in the view functions.

Example 1: Initialize Celery

In the following example, we will use the install_celery_handler to setup Honeybadger reporting.

from celery import Celery
from honeybadger_extensions import install_celery_handler

celery = Celery(__name__)
celery.config_from_object({
    'HONEYBADGER_API_KEY': '<your key>',
    'HONEYBADGER_ENVIRONMENT': 'development'
})

install_celery_handler(config=celery.conf, report_exceptions=True)

Example 2: Initialize Flask

You can use HoneybadgerFlask extension to load Honeybadger configuration from Flask configuration object.

from flask import Flask, jsonify
from honeybadger_extensions import HoneybadgerFlask

app = Flask(__name__)
app.config['HONEYBADGER_ENVIRONMENT'] = 'development'
app.config['HONEYBADGER_API_KEY'] = '<your key>'
app.config['HONEYBADGER_EXCLUDE_HEADERS'] = 'Authorization, Proxy-Authorization, X-Custom-Key'
app.config['HONEYBADGER_PARAMS_FILTERS'] = 'password, secret, credit-card'

# Setup Honeybadger and listen for exceptions
HoneybadgerFlask(app, report_exceptions=True)

@app.route('/')
def index():
    a = int(request.args.get('a'))
    b = int(request.args.get('b'))

    logger.info('Dividing two numbers {} {}'.format(a, b))
    return jsonify({'result': a / b})

Installation

The easiest way to install it is using pip from PyPI

pip install Honeybadger-Extensions

License

See the LICENSE file for license rights and limitations (MIT).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
Honeybadger_Extensions-0.1.2-py3-none-any.whl (9.7 kB) Copy SHA256 hash SHA256 Wheel py3 Feb 16, 2018
Honeybadger-Extensions-0.1.2.tar.gz (7.6 kB) Copy SHA256 hash SHA256 Source None Feb 16, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page