Skip to main content

INSTALL

To run the demo project for testing:

$ git clone git://github.com/jojax/django-js-error-hook.git
$ cd django-js-error-hook
$ virtualenv env --python=python3
$ source env/bin/activate
(env) $ pip install -e .
(env) $ pip install -e demo
(env) $ demo migrate

Run the server:

(env) $ demo runserver

Then access: http://localhost:8000/ - the JavaScript error will be logged in your console.

To install the project in production:

$ pip install django-js-error-hook

Add django-js-error-hook to your INSTALLED_APPS settings:

INSTALLED_APPS = (
    ...
    'django.contrib.staticfiles',
    'django_js_error_hook',
    ...
)

If you want to log the error in the console for development:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'filters': {
        'require_debug_false': {
            '()': 'django.utils.log.RequireDebugFalse'
        }
    },
    'formatters': {
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s'
        },
        'simple': {
            'format': '\033[22;32m%(levelname)s\033[0;0m %(message)s'
        },
    },
    'handlers': {
        'mail_admins': {
            'level': 'ERROR',
            'filters': ['require_debug_false'],
            'class': 'django.utils.log.AdminEmailHandler'
        },
        'console': {
            'level': 'DEBUG',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
            },
    },
    'loggers': {
        'django.request': {
            'handlers': ['mail_admins'],
            'level': 'ERROR',
            'propagate': True,
        },
        'javascript_error': {
            'handlers': ['mail_admins', 'console'],
            'level': 'ERROR',
            'propagate': True,
        },
    }
}

By default the logger is called “javascript_error”, if you want you can define JAVASCRIPT_ERROR_ID in your settings:

JAVASCRIPT_ERROR_ID = '<your logger name>'

The view will do csrf validation - if for some reason it doesn’t work, set JAVASCRIPT_ERROR_CSRF_EXEMPT to True in your settings.

Then install the urls:

urlpatterns = patterns('',
    ...
    url(r'^js_error_hook/', include('django_js_error_hook.urls')),
    ...
)

In your template, simply add the js_error_hook script:

<script type="text/javascript">
    window.djangoJSErrorHandlerUrl = "{% url 'js-error-handler' %}"
</script>
<script type="text/javascript" src="{% static 'js/django_js_error_hook.js' %}"></script>

Now every JavaScript error will be logged in your logging error stream. (Mail, Sentry, …)

Have fun and feel free to fork us and give us feedbacks!

DEVELOPMENT

When writing for this app you can run tox which will test the project against various versions of Python and Django:

pip install tox tox

Release files for django-js-error-hook 1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-js-error-hook 1.0
File Size Uploaded
django-js-error-hook-1.0.tar.gz 6.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-js-error-hook 1.0
File Interpreter ABI Platform
django_js_error_hook-1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.1 kB

Release files / django-js-error-hook-1.0.tar.gz

Download URL django-js-error-hook-1.0.tar.gz
Size 6.9 kB
Tags Source
SHA-256 checksum
How to use checksums
880aed615d2c63c29b04f756960fcdc5b64483e6c769349b44da7a1a97e44579
BLAKE2b-256 checksum
How to use checksums
11893e7e8eed185bc3a99a7f1e6eb7713d22924455acf23b0f9bb22b688b99c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release files / django_js_error_hook-1.0-py3-none-any.whl

Download URL django_js_error_hook-1.0-py3-none-any.whl
Size 7.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eeafbecebeeaddc02a6ae12707936444284e1709656f4170d023f25b2d68e2d3
BLAKE2b-256 checksum
How to use checksums
65ca124cfb25ce082951cafc094c22265cf2d7014105a372bd017a8529cd1f47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.10.6

Release history Release notifications | RSS feed

This release

1.0 This release

2 release files

0.8

2 release files

0.7

2 release files

0.6

2 release files

0.5

2 release files

0.4

2 release files

0.3

1 release file

0.2

1 release file

0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page