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.

Source Distribution

Honeybadger-Extensions-0.1.0.tar.gz (7.7 kB view hashes)

Uploaded Source

Built Distribution

Honeybadger_Extensions-0.1.0-py3-none-any.whl (9.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page