This is a very simple Django app for forwarding console logs and console errors to dedicated Django loggers.
Useful for catching Javascript errors that are not logged by Django natively and would otherwise only be logged to the client's console. Can be particularly useful if you have JavaScript running on top of our server-side rendered views.
The app works by posting all relevant events to an internal Django API, which logs them to one of two loggers. Not sure what impact this has on an apps performance, but it likely should not run anywhere near performance-sensitive production environments. Primarily this is intended to be a debugging aid.
A flowchart of the app's structure looks something like this:
The package is open to contributions.
Installing with pip:
pip install django-js-logger
Installing with poetry:
poetry add django-js-logger
Add
django_js_logger
to your INSTALLED_APPS settings:INSTALLED_APPS = [ ... 'django_js_logger', ]
Include the packages URLconf in your project urls.py like this:
path('js-logs/', include('django_js_logger.urls')),
Optionally, specify your logging preferences by adding
JS_LOGGER
to your settings:JS_LOGGER = { 'CONSOLE_LOG_LEVEL': 'INFO', 'CONSOLE_ERROR_LEVEL': 'WARNING' }
Add the required static file to your project by running
manage.py collectstatic
. This should add a folder,django_js_logger
with the filelogger.js
. If this is not the case, you can copy the file manually from the demo project above.Import
logger.js
in the views you wish to log from by adding a JS import to your templates:<script src="static/django_js_logger/logger.js"></script>