A reusable Django app for managing and viewing application logs
Project description
Django Log Hub
A reusable Django app for managing and viewing application logs with a beautiful web interface.
Features
- 📊 Log Viewer: View and filter application logs in real-time
- 🔍 Advanced Filtering: Filter by log level, date range, status code, and custom keywords
- 📁 File Management: Download and clear log files
- 🎨 Beautiful UI: Modern Bootstrap-based interface
- 🔐 Security: Admin-only access with proper permissions
- ⚙️ Configurable: Customizable log directory and template paths
- 📦 Reusable: Easy to integrate into any Django project
- 🌍 Internationalization: Support for Turkish and English languages
Installation
From PyPI
pip install django-log-hub
From Source
git clone https://github.com/eneshazr/django-log-hub.git
cd django-log-hub
pip install -e .
Setup
- Add to INSTALLED_APPS in your Django settings:
INSTALLED_APPS = [
# ... other apps
'log_hub',
]
- Configure logging in your Django settings:
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': {
'json': {
'()': 'pythonjsonlogger.jsonlogger.JsonFormatter',
'format': '%(levelname)s %(asctime)s %(name)s %(process)d %(thread)d %(message)s %(status_code)s %(taskName)s %(request)s',
},
},
'handlers': {
'file_info': {
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs', 'info.log'),
'maxBytes': 1024 * 1024 * 5, # 5 MB
'backupCount': 5,
'formatter': 'json',
},
'file_error': {
'level': 'ERROR',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs', 'error.log'),
'maxBytes': 1024 * 1024 * 5, # 5 MB
'backupCount': 5,
'formatter': 'json',
},
},
'loggers': {
'django': {
'handlers': ['file_info', 'file_error'],
'level': 'INFO',
'propagate': True,
},
},
}
# Create logs directory
if not os.path.exists(os.path.join(BASE_DIR, 'logs')):
os.makedirs(os.path.join(BASE_DIR, 'logs'))
- Add URLs to your main urls.py:
from django.urls import path, include
urlpatterns = [
# ... other URLs
path('logs/', include('log_hub.urls')), # You can change 'logs/' to any path you prefer
]
- Run migrations (if any):
python manage.py migrate
Configuration
You can customize the app behavior using these settings:
# Log Hub Configuration
LOG_HUB_LOG_DIR = os.path.join(BASE_DIR, 'logs') # Log directory path
LOG_HUB_TEMPLATE = 'log_hub/logging.html' # Custom template path
# Internationalization (i18n) Settings
LANGUAGE_CODE = 'en' # Default language
LANGUAGES = [
('en', 'English'),
('tr', 'Türkçe'),
]
USE_I18N = True
USE_L10N = True
# Add LocaleMiddleware for language switching
MIDDLEWARE = [
# ... other middleware
'django.middleware.locale.LocaleMiddleware', # Add this for language support
# ... other middleware
]
Usage
Accessing the Log Hub
Navigate to /logs/ in your browser. You must be logged in as an admin user to access the logs.
Features
- Log File Selection: Choose which log file to view
- Filtering: Filter logs by:
- Log level (INFO, WARNING, ERROR)
- Date range
- Status code
- Search keywords
- Exclude keywords
- File Management:
- Download log files
- Clear log files
- Real-time Viewing: View logs in a beautiful accordion interface
- Language Support: Switch between Turkish and English interfaces
API Endpoints
GET /logs/- View logs with filteringGET /logs/change-language/- Change interface languageGET /logs/download/<filename>/- Download log filePOST /logs/clear/<filename>/- Clear log file
Requirements
- Python 3.8+
- Django 3.2+
- python-json-logger 2.0+
Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests
- Submit a pull request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
If you encounter any issues or have questions, please open an issue on GitHub.
Changelog
1.0.1
- Added Turkish language support
- Improved error handling with user-friendly messages
- Enhanced security with path traversal protection
- Added language switcher in UI
- Fixed CSRF protection issues
- Optimized log file reading performance
- Added comprehensive internationalization (i18n) support
1.0.0
- Initial release
- Log viewing and filtering
- File management (download/clear)
- Beautiful Bootstrap UI
- Admin-only access
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_log_hub-1.0.5.tar.gz.
File metadata
- Download URL: django_log_hub-1.0.5.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42b6b88cd4f82870672d8ed479c7ed64d48aeb40c80053f81d3418402a5ea3af
|
|
| MD5 |
53820768f6917e073dd3e50db1acbc7d
|
|
| BLAKE2b-256 |
876723c2fdf2eaa6698079972e31cb4e8702f48e8d1f58636591f8fcef091cdf
|
File details
Details for the file django_log_hub-1.0.5-py3-none-any.whl.
File metadata
- Download URL: django_log_hub-1.0.5-py3-none-any.whl
- Upload date:
- Size: 16.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9567572af653ba58a0fd02d94af4d2103e4b688f85ea5d24aabfd9211a131503
|
|
| MD5 |
db739ee21c90e54b8f5d3b9980c8eb53
|
|
| BLAKE2b-256 |
ef43fed89f14dd63b7024afd0c302f71e5395826ec08a16aaa9aa76c485fccda
|