mamood-django-admin-log-viewer


Namemamood-django-admin-log-viewer JSON
Version 2.0.0 PyPI version JSON
download
home_pageNone
SummaryA Django app for viewing log files in the admin interface
upload_time2025-08-13 21:02:09
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseNone
keywords django admin log viewer monitoring tail real-time
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Django Admin Log Viewer

A powerful Django app that provides a comprehensive web interface to view and monitor log files directly in the Django admin panel.

## 🌟 Features

### Core Features
- **Multi-Log File Support**: View multiple log files with automatic detection and grouping
- **Configurable Log Formats**: Support for Django, Celery, Nginx, and custom log formats
- **Multi-line Log Processing**: Properly handles stack traces and multi-line log entries
- **Smart Pagination**: Multi-line aware pagination that never splits log entries across pages
- **Real-time Monitoring**: Live mode with auto-refresh for real-time log monitoring
- **Log Rotation Support**: Automatic detection and handling of rotated log files (.1, .2, .gz, etc.)

### User Experience
- **Responsive Design**: Works perfectly on desktop, tablet, and mobile devices
- **Dark Mode Support**: Built-in dark theme for comfortable viewing
- **Advanced Filtering**: Filter by log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL)
- **Download Functionality**: Download individual log files directly from the interface
- **Sidebar Navigation**: Easy navigation between multiple log files
- **Search & Filtering**: Quick search through log content

### Technical Features
- **Memory Efficient**: Streaming file reading for large log files
- **Security Focused**: Staff-only access with proper file path validation
- **Performance Optimized**: AJAX-based updates for smooth user experience
- **No Database Required**: Reads files directly from disk
- **Configurable UI**: Customizable colors, refresh intervals, and display options

## 📦 Installation

### Production Installation

```bash
pip install mamood-django-admin-log-viewer
```

### Development Installation (Editable Mode)

For development or contributing:

```bash
# Clone the repository
git clone https://github.com/ammahmoudi/mamood-django-admin-log-viewer.git
cd mamood-django-admin-log-viewer

# Install in editable mode
pip install -e .

# Or with development dependencies
pip install -e .[dev]
```

The editable install (`-e` flag) allows you to modify the source code and see changes immediately without reinstalling.

### 2. Add to Django Settings

Add `mamood_django_admin_log_viewer` to your `INSTALLED_APPS`:

```python
INSTALLED_APPS = [
    # ... other apps
    'django.contrib.admin',  # Required
    'django.contrib.auth',   # Required  
    'django.contrib.contenttypes',  # Required
    'mamood_django_admin_log_viewer',
]
```

### 3. Basic Configuration

Add to your `settings.py`:

```python
import os
from pathlib import Path

# Basic log viewer settings
LOG_VIEWER_FILES = ['django.log', 'application.log']
LOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'  # or '/path/to/your/logs/'
LOG_VIEWER_PAGE_LENGTH = 25
```

### 4. URL Configuration

The log viewer integrates automatically with Django admin - no URL configuration needed!

## ⚙️ Configuration

The Django Admin Log Viewer comes with comprehensive default settings that work out of the box. You only need to specify the log files you want to monitor - all other settings are optional and have sensible defaults.

### Required Settings

```python
# Required: List of log files to monitor
LOG_VIEWER_FILES = ['django.log', 'application.log', 'celery_beat.log']

# Required: Directory containing log files
LOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'
```

### Optional Settings (with defaults)

All the settings below are optional. The app provides comprehensive defaults that work well for most use cases:

```python
# Display settings (defaults shown)
LOG_VIEWER_PAGE_LENGTH = 25                    # Log entries per page
LOG_VIEWER_MAX_READ_LINES = 1000              # Max lines to read per request
LOG_VIEWER_FILE_LIST_MAX_ITEMS_PER_PAGE = 25  # Files per page in file list
LOG_VIEWER_FILE_LIST_TITLE = "Log Files"      # Title for file list page

# Real-time monitoring (defaults shown)
LOGVIEWER_REFRESH_INTERVAL = 10000            # Auto-refresh interval (10 seconds)
LOGVIEWER_AUTO_REFRESH_DEFAULT = True         # Enable auto-refresh by default
LOGVIEWER_AUTO_SCROLL_TO_BOTTOM = True        # Auto-scroll to latest logs
LOGVIEWER_ONLY_REFRESH_WHEN_ACTIVE = True     # Only refresh when tab is active

# Performance settings (defaults shown)
LOGVIEWER_INITIAL_NUMBER_OF_CHARS = 2048      # Initial load size
LOGVIEWER_DISABLE_ACCESS_LOGS = True          # Don't log AJAX requests
```

> **💡 Pro Tip**: You only need to specify settings that you want to change from the defaults. The app will automatically use sensible defaults for any unspecified settings.

### 🎯 Quick Start Summary

For most users, you only need these two settings to get started:

```python
# Minimal configuration - just specify your log files!
LOG_VIEWER_FILES = ['django.log', 'application.log'] 
LOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'

# Everything else uses intelligent defaults:
# ✅ 8 built-in log format patterns (Django, Celery, Nginx, Apache, etc.)
# ✅ Beautiful color scheme for all log levels  
# ✅ Real-time monitoring with 10-second refresh
# ✅ 25 entries per page with smart multi-line pagination
# ✅ Performance optimizations enabled by default
```

### Advanced Log Format Configuration

The app comes with **8 built-in log format patterns** that handle most common log formats out of the box:

#### Built-in Log Formats

- **`django_default`** - Django standard format: `LEVEL YYYY-MM-DD HH:MM:SS,mmm module: message`
- **`simple`** - Simple format: `LEVEL: message`  
- **`celery_beat`** - Celery Beat scheduler logs
- **`celery_worker`** - Celery Worker task logs
- **`nginx_access`** - Nginx access log format
- **`nginx_error`** - Nginx error log format
- **`apache_common`** - Apache Common Log Format
- **`syslog`** - Standard syslog format

#### Custom Log Format Configuration

If you need custom log parsing, you can override or extend the default formats:

```python
# Custom log format configuration (optional)
LOG_VIEWER_FORMATS = {
    # Use any of the built-in formats, or define your own
    'my_custom_format': {
        'pattern': r'(?P<level>\w+)\s+(?P<timestamp>\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2}:\d{2})\s+(?P<message>.*)',
        'timestamp_format': '%Y-%m-%d %H:%M:%S',
        'description': 'My custom format'
    }
}

# Per-file format assignment
LOG_VIEWER_FILE_FORMATS = {
    'django.log': 'django_default',
    'application.log': 'simple', 
    'celery_beat.log': 'celery_beat',
    'access.log': 'nginx_access',
}

# Default format for unspecified files
LOG_VIEWER_DEFAULT_FORMAT = 'django_default'
```

### Styling and Colors

The app comes with a comprehensive **default color scheme** for all log levels. You only need to customize colors if you want to override the defaults:

#### Default Color Scheme

- **DEBUG**: `#6c757d` (Gray) - Low-priority debug information
- **INFO**: `#0dcaf0` (Cyan) - General informational messages  
- **WARNING/WARN**: `#ffc107` (Yellow) - Warning messages
- **ERROR**: `#dc3545` (Red) - Error conditions
- **CRITICAL/FATAL**: `#6f42c1` (Purple) - Critical system errors
- **NOTICE**: `#17a2b8` (Teal) - Important notices
- **ALERT**: `#fd7e14` (Orange) - Alert conditions

#### Custom Color Configuration (Optional)

```python
# Override default colors only if needed
LOG_VIEWER_LEVEL_COLORS = {
    'ERROR': '#ff0000',    # Custom red for errors
    'DEBUG': '#888888',    # Custom gray for debug
    # ... other custom colors
}

# Optional: Exclude certain log patterns  
LOG_VIEWER_EXCLUDE_TEXT_PATTERN = r'healthcheck|ping'  # Regex pattern
```

## 🚀 Usage

### Accessing the Log Viewer

1. Login to Django Admin as a staff user
2. Look for **"Log Files"** in the admin interface, or navigate directly to `admin/logs/`
3. Click to view the list of available log files
4. Select any log file to view its contents

**Direct URL Access**: You can also access logs directly at `http://your-domain.com/admin/logs/` after logging in as a staff user.

### Features in Action

- **Real-time Monitoring**: Toggle "Live Mode" to auto-refresh logs
- **Multi-line Support**: Stack traces and exceptions are properly grouped
- **Download Logs**: Click the download button to save log files locally
- **Pagination**: Navigate through large log files with smart pagination
- **Filtering**: Filter by log levels using the dropdown menu
- **Search**: Use browser search (Ctrl+F) to find specific content

## 🔧 Advanced Usage

### Custom Log Formats

Create custom regex patterns for your specific log formats:

```python
LOG_VIEWER_FORMATS = {
    'my_custom_format': {
        'pattern': r'(?P<timestamp>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2})\s+(?P<level>\w+)\s+(?P<message>.*)',
        'timestamp_format': '%Y-%m-%dT%H:%M:%S',
        'description': 'Custom ISO timestamp format'
    }
}
```

### Log Rotation Support

The viewer automatically detects rotated log files:

- `application.log` (current)
- `application.log.1` (yesterday)
- `application.log.2.gz` (compressed older logs)
- `application.log.2023-12-01` (dated logs)

### Multi-line Processing

Perfect handling of:

- Python stack traces
- Java exceptions  
- SQL query logs
- JSON formatted logs
- Any multi-line log entry

## 🛡️ Security

- **Staff Only Access**: Only Django staff users can access log files
- **Path Validation**: Prevents directory traversal attacks
- **File Size Limits**: Configurable limits prevent memory exhaustion
- **Error Handling**: Graceful handling of missing or corrupt files

## 📋 Requirements

- **Python**: 3.8+
- **Django**: 4.2+
- **Permissions**: Staff access to Django admin

## 🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## 📄 License

MIT License - see LICENSE file for details.

## 🐛 Troubleshooting

### Log Files Not Showing

- Check `LOG_VIEWER_FILES_DIR` path exists
- Verify file permissions
- Ensure files are listed in `LOG_VIEWER_FILES`

### Performance Issues

- Reduce `LOG_VIEWER_PAGE_LENGTH` for large files
- Increase `LOGVIEWER_REFRESH_INTERVAL`
- Set `LOGVIEWER_DISABLE_ACCESS_LOGS = True`

### Multi-line Logs Not Grouping

- Check your log format regex pattern
- Ensure the pattern matches the first line of log entries
- Verify timestamp format matches your logs

## 🎯 Changelog

### v2.0.0 (Latest)

- ✅ Multi-line log processing with smart pagination
- ✅ Configurable log format parsing
- ✅ Log rotation support
- ✅ Dark mode theme
- ✅ Real-time monitoring with live mode
- ✅ Module/logger name display
- ✅ Download functionality
- ✅ Responsive sidebar navigation
- ✅ Memory-efficient streaming

---

⭐ **Star this repo if you find it useful!**

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "mamood-django-admin-log-viewer",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "django, admin, log, viewer, monitoring, tail, real-time",
    "author": null,
    "author_email": "\"A. Mahmoudi\" <a.mahmoudi@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/e0/6c/08b22bde7a4ae26bca5b3a20793b1699f8590aea22309e84f83f13db603d/mamood_django_admin_log_viewer-2.0.0.tar.gz",
    "platform": null,
    "description": "# Django Admin Log Viewer\n\nA powerful Django app that provides a comprehensive web interface to view and monitor log files directly in the Django admin panel.\n\n## \ud83c\udf1f Features\n\n### Core Features\n- **Multi-Log File Support**: View multiple log files with automatic detection and grouping\n- **Configurable Log Formats**: Support for Django, Celery, Nginx, and custom log formats\n- **Multi-line Log Processing**: Properly handles stack traces and multi-line log entries\n- **Smart Pagination**: Multi-line aware pagination that never splits log entries across pages\n- **Real-time Monitoring**: Live mode with auto-refresh for real-time log monitoring\n- **Log Rotation Support**: Automatic detection and handling of rotated log files (.1, .2, .gz, etc.)\n\n### User Experience\n- **Responsive Design**: Works perfectly on desktop, tablet, and mobile devices\n- **Dark Mode Support**: Built-in dark theme for comfortable viewing\n- **Advanced Filtering**: Filter by log levels (DEBUG, INFO, WARNING, ERROR, CRITICAL)\n- **Download Functionality**: Download individual log files directly from the interface\n- **Sidebar Navigation**: Easy navigation between multiple log files\n- **Search & Filtering**: Quick search through log content\n\n### Technical Features\n- **Memory Efficient**: Streaming file reading for large log files\n- **Security Focused**: Staff-only access with proper file path validation\n- **Performance Optimized**: AJAX-based updates for smooth user experience\n- **No Database Required**: Reads files directly from disk\n- **Configurable UI**: Customizable colors, refresh intervals, and display options\n\n## \ud83d\udce6 Installation\n\n### Production Installation\n\n```bash\npip install mamood-django-admin-log-viewer\n```\n\n### Development Installation (Editable Mode)\n\nFor development or contributing:\n\n```bash\n# Clone the repository\ngit clone https://github.com/ammahmoudi/mamood-django-admin-log-viewer.git\ncd mamood-django-admin-log-viewer\n\n# Install in editable mode\npip install -e .\n\n# Or with development dependencies\npip install -e .[dev]\n```\n\nThe editable install (`-e` flag) allows you to modify the source code and see changes immediately without reinstalling.\n\n### 2. Add to Django Settings\n\nAdd `mamood_django_admin_log_viewer` to your `INSTALLED_APPS`:\n\n```python\nINSTALLED_APPS = [\n    # ... other apps\n    'django.contrib.admin',  # Required\n    'django.contrib.auth',   # Required  \n    'django.contrib.contenttypes',  # Required\n    'mamood_django_admin_log_viewer',\n]\n```\n\n### 3. Basic Configuration\n\nAdd to your `settings.py`:\n\n```python\nimport os\nfrom pathlib import Path\n\n# Basic log viewer settings\nLOG_VIEWER_FILES = ['django.log', 'application.log']\nLOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'  # or '/path/to/your/logs/'\nLOG_VIEWER_PAGE_LENGTH = 25\n```\n\n### 4. URL Configuration\n\nThe log viewer integrates automatically with Django admin - no URL configuration needed!\n\n## \u2699\ufe0f Configuration\n\nThe Django Admin Log Viewer comes with comprehensive default settings that work out of the box. You only need to specify the log files you want to monitor - all other settings are optional and have sensible defaults.\n\n### Required Settings\n\n```python\n# Required: List of log files to monitor\nLOG_VIEWER_FILES = ['django.log', 'application.log', 'celery_beat.log']\n\n# Required: Directory containing log files\nLOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'\n```\n\n### Optional Settings (with defaults)\n\nAll the settings below are optional. The app provides comprehensive defaults that work well for most use cases:\n\n```python\n# Display settings (defaults shown)\nLOG_VIEWER_PAGE_LENGTH = 25                    # Log entries per page\nLOG_VIEWER_MAX_READ_LINES = 1000              # Max lines to read per request\nLOG_VIEWER_FILE_LIST_MAX_ITEMS_PER_PAGE = 25  # Files per page in file list\nLOG_VIEWER_FILE_LIST_TITLE = \"Log Files\"      # Title for file list page\n\n# Real-time monitoring (defaults shown)\nLOGVIEWER_REFRESH_INTERVAL = 10000            # Auto-refresh interval (10 seconds)\nLOGVIEWER_AUTO_REFRESH_DEFAULT = True         # Enable auto-refresh by default\nLOGVIEWER_AUTO_SCROLL_TO_BOTTOM = True        # Auto-scroll to latest logs\nLOGVIEWER_ONLY_REFRESH_WHEN_ACTIVE = True     # Only refresh when tab is active\n\n# Performance settings (defaults shown)\nLOGVIEWER_INITIAL_NUMBER_OF_CHARS = 2048      # Initial load size\nLOGVIEWER_DISABLE_ACCESS_LOGS = True          # Don't log AJAX requests\n```\n\n> **\ud83d\udca1 Pro Tip**: You only need to specify settings that you want to change from the defaults. The app will automatically use sensible defaults for any unspecified settings.\n\n### \ud83c\udfaf Quick Start Summary\n\nFor most users, you only need these two settings to get started:\n\n```python\n# Minimal configuration - just specify your log files!\nLOG_VIEWER_FILES = ['django.log', 'application.log'] \nLOG_VIEWER_FILES_DIR = BASE_DIR / 'logs'\n\n# Everything else uses intelligent defaults:\n# \u2705 8 built-in log format patterns (Django, Celery, Nginx, Apache, etc.)\n# \u2705 Beautiful color scheme for all log levels  \n# \u2705 Real-time monitoring with 10-second refresh\n# \u2705 25 entries per page with smart multi-line pagination\n# \u2705 Performance optimizations enabled by default\n```\n\n### Advanced Log Format Configuration\n\nThe app comes with **8 built-in log format patterns** that handle most common log formats out of the box:\n\n#### Built-in Log Formats\n\n- **`django_default`** - Django standard format: `LEVEL YYYY-MM-DD HH:MM:SS,mmm module: message`\n- **`simple`** - Simple format: `LEVEL: message`  \n- **`celery_beat`** - Celery Beat scheduler logs\n- **`celery_worker`** - Celery Worker task logs\n- **`nginx_access`** - Nginx access log format\n- **`nginx_error`** - Nginx error log format\n- **`apache_common`** - Apache Common Log Format\n- **`syslog`** - Standard syslog format\n\n#### Custom Log Format Configuration\n\nIf you need custom log parsing, you can override or extend the default formats:\n\n```python\n# Custom log format configuration (optional)\nLOG_VIEWER_FORMATS = {\n    # Use any of the built-in formats, or define your own\n    'my_custom_format': {\n        'pattern': r'(?P<level>\\w+)\\s+(?P<timestamp>\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2})\\s+(?P<message>.*)',\n        'timestamp_format': '%Y-%m-%d %H:%M:%S',\n        'description': 'My custom format'\n    }\n}\n\n# Per-file format assignment\nLOG_VIEWER_FILE_FORMATS = {\n    'django.log': 'django_default',\n    'application.log': 'simple', \n    'celery_beat.log': 'celery_beat',\n    'access.log': 'nginx_access',\n}\n\n# Default format for unspecified files\nLOG_VIEWER_DEFAULT_FORMAT = 'django_default'\n```\n\n### Styling and Colors\n\nThe app comes with a comprehensive **default color scheme** for all log levels. You only need to customize colors if you want to override the defaults:\n\n#### Default Color Scheme\n\n- **DEBUG**: `#6c757d` (Gray) - Low-priority debug information\n- **INFO**: `#0dcaf0` (Cyan) - General informational messages  \n- **WARNING/WARN**: `#ffc107` (Yellow) - Warning messages\n- **ERROR**: `#dc3545` (Red) - Error conditions\n- **CRITICAL/FATAL**: `#6f42c1` (Purple) - Critical system errors\n- **NOTICE**: `#17a2b8` (Teal) - Important notices\n- **ALERT**: `#fd7e14` (Orange) - Alert conditions\n\n#### Custom Color Configuration (Optional)\n\n```python\n# Override default colors only if needed\nLOG_VIEWER_LEVEL_COLORS = {\n    'ERROR': '#ff0000',    # Custom red for errors\n    'DEBUG': '#888888',    # Custom gray for debug\n    # ... other custom colors\n}\n\n# Optional: Exclude certain log patterns  \nLOG_VIEWER_EXCLUDE_TEXT_PATTERN = r'healthcheck|ping'  # Regex pattern\n```\n\n## \ud83d\ude80 Usage\n\n### Accessing the Log Viewer\n\n1. Login to Django Admin as a staff user\n2. Look for **\"Log Files\"** in the admin interface, or navigate directly to `admin/logs/`\n3. Click to view the list of available log files\n4. Select any log file to view its contents\n\n**Direct URL Access**: You can also access logs directly at `http://your-domain.com/admin/logs/` after logging in as a staff user.\n\n### Features in Action\n\n- **Real-time Monitoring**: Toggle \"Live Mode\" to auto-refresh logs\n- **Multi-line Support**: Stack traces and exceptions are properly grouped\n- **Download Logs**: Click the download button to save log files locally\n- **Pagination**: Navigate through large log files with smart pagination\n- **Filtering**: Filter by log levels using the dropdown menu\n- **Search**: Use browser search (Ctrl+F) to find specific content\n\n## \ud83d\udd27 Advanced Usage\n\n### Custom Log Formats\n\nCreate custom regex patterns for your specific log formats:\n\n```python\nLOG_VIEWER_FORMATS = {\n    'my_custom_format': {\n        'pattern': r'(?P<timestamp>\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2})\\s+(?P<level>\\w+)\\s+(?P<message>.*)',\n        'timestamp_format': '%Y-%m-%dT%H:%M:%S',\n        'description': 'Custom ISO timestamp format'\n    }\n}\n```\n\n### Log Rotation Support\n\nThe viewer automatically detects rotated log files:\n\n- `application.log` (current)\n- `application.log.1` (yesterday)\n- `application.log.2.gz` (compressed older logs)\n- `application.log.2023-12-01` (dated logs)\n\n### Multi-line Processing\n\nPerfect handling of:\n\n- Python stack traces\n- Java exceptions  \n- SQL query logs\n- JSON formatted logs\n- Any multi-line log entry\n\n## \ud83d\udee1\ufe0f Security\n\n- **Staff Only Access**: Only Django staff users can access log files\n- **Path Validation**: Prevents directory traversal attacks\n- **File Size Limits**: Configurable limits prevent memory exhaustion\n- **Error Handling**: Graceful handling of missing or corrupt files\n\n## \ud83d\udccb Requirements\n\n- **Python**: 3.8+\n- **Django**: 4.2+\n- **Permissions**: Staff access to Django admin\n\n## \ud83e\udd1d Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## \ud83d\udcc4 License\n\nMIT License - see LICENSE file for details.\n\n## \ud83d\udc1b Troubleshooting\n\n### Log Files Not Showing\n\n- Check `LOG_VIEWER_FILES_DIR` path exists\n- Verify file permissions\n- Ensure files are listed in `LOG_VIEWER_FILES`\n\n### Performance Issues\n\n- Reduce `LOG_VIEWER_PAGE_LENGTH` for large files\n- Increase `LOGVIEWER_REFRESH_INTERVAL`\n- Set `LOGVIEWER_DISABLE_ACCESS_LOGS = True`\n\n### Multi-line Logs Not Grouping\n\n- Check your log format regex pattern\n- Ensure the pattern matches the first line of log entries\n- Verify timestamp format matches your logs\n\n## \ud83c\udfaf Changelog\n\n### v2.0.0 (Latest)\n\n- \u2705 Multi-line log processing with smart pagination\n- \u2705 Configurable log format parsing\n- \u2705 Log rotation support\n- \u2705 Dark mode theme\n- \u2705 Real-time monitoring with live mode\n- \u2705 Module/logger name display\n- \u2705 Download functionality\n- \u2705 Responsive sidebar navigation\n- \u2705 Memory-efficient streaming\n\n---\n\n\u2b50 **Star this repo if you find it useful!**\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Django app for viewing log files in the admin interface",
    "version": "2.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/ammahmoudi/mamood-django-admin-log-viewer/issues",
        "Changelog": "https://github.com/ammahmoudi/mamood-django-admin-log-viewer/blob/main/CHANGELOG.md",
        "Documentation": "https://github.com/ammahmoudi/mamood-django-admin-log-viewer#readme",
        "Homepage": "https://github.com/ammahmoudi/mamood-django-admin-log-viewer",
        "Repository": "https://github.com/ammahmoudi/mamood-django-admin-log-viewer"
    },
    "split_keywords": [
        "django",
        " admin",
        " log",
        " viewer",
        " monitoring",
        " tail",
        " real-time"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b90f4ef6565431f1b4cfef730925e77aa5e0cef1d79fa436b5fd38450ea92264",
                "md5": "4d7e8067e7377aad71d3d92181cce07b",
                "sha256": "496d30e6faccb7db1743bc9b98e347f4cccbc51dcca872532cfb61cf7091b57c"
            },
            "downloads": -1,
            "filename": "mamood_django_admin_log_viewer-2.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4d7e8067e7377aad71d3d92181cce07b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 45773,
            "upload_time": "2025-08-13T21:02:08",
            "upload_time_iso_8601": "2025-08-13T21:02:08.118980Z",
            "url": "https://files.pythonhosted.org/packages/b9/0f/4ef6565431f1b4cfef730925e77aa5e0cef1d79fa436b5fd38450ea92264/mamood_django_admin_log_viewer-2.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e06c08b22bde7a4ae26bca5b3a20793b1699f8590aea22309e84f83f13db603d",
                "md5": "c075478e22427ac9957eb46e90efc889",
                "sha256": "4472bfbb211c7c3c4443ff44ccbaa294f9daa19848a6c40989b81e37d1e10c36"
            },
            "downloads": -1,
            "filename": "mamood_django_admin_log_viewer-2.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c075478e22427ac9957eb46e90efc889",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 48109,
            "upload_time": "2025-08-13T21:02:09",
            "upload_time_iso_8601": "2025-08-13T21:02:09.521520Z",
            "url": "https://files.pythonhosted.org/packages/e0/6c/08b22bde7a4ae26bca5b3a20793b1699f8590aea22309e84f83f13db603d/mamood_django_admin_log_viewer-2.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-13 21:02:09",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ammahmoudi",
    "github_project": "mamood-django-admin-log-viewer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "mamood-django-admin-log-viewer"
}
        
Elapsed time: 0.91988s