A lightweight Django app for viewing and managing log data conveniently
Project description
Django Log Lens is a dependency free, lightweight and easy-to-use logging app for Django. It provides an interface to view, download and supervise logs. Furthermore, it allows clients to send console logs to the server - out of the box, working with any frontend framework just by adding a single line of code to include the required script. Want to try it out? →Get started!
Core Features
Overview of Accessible Handlers and the Corresponding Log Files
Syntax-highlighted Logs in Your Browser
Fast Navigation through Log Files
Fast Navigation through Source Code
- Click on a path in the log message to copy it to the clipboard
- Click on the ↑ button to open the referenced line in VS Code
- Adjust the Path Splitter and the Path Prefix to match your project structure
Example:
Say, the remote project root is /web/my-project
(as in the example above) and your local project root is /home/user/MY-PROJECT
.
- Set the Path Prefix to
/home/user/MY-PROJECT
- Set the Path Splitter to
/my-project
→ Now, by clicking on the path
/web/my-project/django/dvenv/lib/python3.10/site-packages/django/http/request.py:151
,
/home/user/MY-PROJECT/django/dvenv/lib/python3.10/site-packages/django/http/request.py:151
will be opened by VS Code instead.
Getting Started
1. Install django-log-lens
from PyPI
pip install django-log-lens
2. Add django_log_lens
to your INSTALLED_APPS
# file: settings.py
INSTALLED_APPS = [
'django_log_lens',
...
]
3. Add URL patterns to your urls.py
# file: urls.py
from django.urls import include
urlpatterns = [
path('logs/', include('django_log_lens.urls')),
...
]
4. Add a LOGGING
configuration in your settings.py
Follow the instructions from the official Django documentation to configure the logging system or use the example below.
# file: settings.py
from django_log_lens import LOG_FORMAT
LOG_FOLDER = BASE_DIR / "logs"
if not os.path.exists(LOG_FOLDER):
os.makedirs(LOG_FOLDER)
LOGGING = {
"version": 1,
"disable_existing_loggers": False,
"formatters": {"default": {"format": LOG_FORMAT}},
"handlers": {
"log_collector": {
"level": "WARNING",
"class": "logging.FileHandler",
"filename": str(LOG_FOLDER / "collector.log"),
"formatter": "default",
},
"client_logger": {
"level": "DEBUG",
"class": "logging.FileHandler",
"filename": str(LOG_FOLDER / "client.log"),
"formatter": "default",
},
},
"loggers": {
"django_log_lens.client": {"handlers": ["client_logger"], "level": "DEBUG", "propagate": True},
"django" : {"handlers": ["log_collector"], "level": "DEBUG", "propagate": True},
}
}
ALLOW_JS_LOGGING = True # django_log_lens setting: allows clients to send console logs to the server
5. Visit Log Lens
You can now visit Django Log Lens by navigating to {% url 'django_log_lens:view' %}
(code for your template) -
if you configured the URL pattern as shown above, this would be logs/view
Third Party Licenses
This project uses the Dracula theme by Zeno Rocha which is licensed under the MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.