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.
Client Logging
Allows clients to send console logs to the server.
<!DOCTYPE html>
<html>
...
<body>
{% csrf_token %}
<!-- it's not necessary to render the CSRF token more than once,
so if you use it anywhere in your template, you can skip the line above -->
{% include 'js-logger.html' %}
<!-- include the script to send console logs to the server.
It will simply override the console methods (debug, info, warn...) in a
way they behave the same as before but also send the logs to the server.
Thus, the script does not interfere with your frontend framework and
can be used out-of-the-box. -->
...
</body>
<script>
throw new Error("Hello, Django Log Lens!");
/* You will find this error, including its stack trace, in a log file
if you configured django log lens as described below. */
</script>
</html>
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.
Source Distribution
Hashes for django-log-lens-0.1.10.post1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 156434d93de235a3984e4c689549cf099b243d997e6a32b549c16bf09e2a79ca |
|
MD5 | 553b44dea86f5423ee0f930d2d33b232 |
|
BLAKE2b-256 | 70ea3142f0ee2a6e7ef46bd60e01824e1234a23a8b8478d572d916044c28a83d |