Configuration

You can set configuration options for the Honeybadger client by calling the honeybadger.configure method. This can be called in one of your applications files such as settings.py or wsgi.py, or in a custom middleware.

python
from honeybadger import honeybadger honeybadger.configure( api_key="your_api_key", environment="production", project_root="/path/to/your/project/root", excluded_exceptions=["SomeIgnoredException"], )

See Configuration Options for a list of available options.

Twelve-factor configuration

Most of Honeybadger's configuration options can also be set via environment variables with the HONEYBADGER_ prefix (12-factor style). For example, the api_key option can be set via the HONEYBADGER_API_KEY environment variable:

bash
export HONEYBADGER_API_KEY="your_api_key" export HONEYBADGER_ENVIRONMENT="production"

Filtering and enriching errors

The before_notify handler allows you to filter or modify error notifications before they're sent to Honeybadger:

python
def custom_before_notify(notice): # Skip notifications for specific error types if notice.error_class == 'MyCustomError': return False # Skip this notification # Add custom context notice.context['custom_data'] = 'example' # Return the notice to send it return notice honeybadger.configure(before_notify=custom_before_notify)

Return False from the handler to skip the notification. Return the notice object to send it.

Filtering and enriching events

The before_event handler allows you to filter or modify performance events before they're sent to Honeybadger:

python
def custom_before_event(event): # Skip events from health check endpoints if event.get('path') == '/health': return False # Skip this event # Add custom metadata for slow requests if event.get('duration', 0) > 1000: # Over 1 second event['slow_request'] = True # Return the event to send it return event honeybadger.configure(before_event=custom_before_event)

Return False from the handler to skip the event. Return the event object to send it.

Configuration options

The following options are available to you:

Name Type Default
api_key str ""
project_root str The current working directory
environment1 str "production"
development_environments list ['development', 'dev', 'test']
hostname str The hostname of the current server.
endpoint str "https://api.honeybadger.io"
params_filters list ['password', 'password_confirmation', 'credit_card', 'CSRF_COOKIE']
force_report_data bool False
excluded_exceptions list []
force_sync bool False
report_local_variables bool False
insights_enabled bool False
insights_config dict {} (see Insights Configuration)
events_sample_rate int 100 (0-100, percentage of events to send)
events_batch_size int 1000
events_max_queue_size int 10000
events_timeout float 5.0
events_max_batch_retries int 3
events_throttle_wait float 60.0
before_notify callable lambda notice: notice
before_event callable lambda event: event

Insights configuration

The insights_config option accepts a dictionary with configuration for Honeybadger's automatic instrumentation:

python
from honeybadger import honeybadger honeybadger.configure( insights_enabled=True, insights_config={ "django": {"include_params": True}, "db": {"disabled": True}, "celery": {"exclude_tasks": ["cleanup_task"]} } )

Each instrumented framework has its own set of options:

Framework Name Type Default Description
django
disabled bool False Disable Django instrumentation
include_params bool False Include GET/POST parameters in request events
flask
disabled bool False Disable Flask instrumentation
include_params bool False Include GET/POST parameters in request events
asgi
disabled bool False Disable ASGI instrumentation
include_params bool False Include query parameters in request events
celery
disabled bool False Disable Celery instrumentation
include_args bool False Include task arguments/kwargs in events
exclude_tasks list[str or regex] [] List of task names or regex patterns to exclude
db
disabled bool False Disable database instrumentation
include_params bool False Include SQL parameters in query events
exclude_queries list[str or regex] System queries2 List of queries to exclude

For more examples, see Capturing Logs and Events.


  1. Honeybadger will try to infer the correct environment when possible. For example, in the case of the Django integration, if Django settings are set to DEBUG = True, the environment will default to development

  2. Default excluded queries include Django migrations, auth tables, and common system queries. Import default_excluded_queries from honeybadger.config to see the full list.