Library for generating HTML logs with support for colors, rotation and filters via JavaScript.
Project description
HTML Logger
A Python library for generating HTML logs with support for colors, file rotation, tagging, and JavaScript filters.
Features
- ✅ Colored logs in HTML format
- ✅ Automatic file rotation
- ✅ Clean interface with integrated JavaScript filters
- ✅ Thread-safe and high performance
- ✅ Exception support with full traceback
- ✅ Flexible configuration for file size and quantity
- ✅ Tagging system for message categorization
- ✅ Advanced filtering by tags and text content
- ✅ Default color mapping for specific tags
Installation
pip install loghtml
Basic Usage
from loghtml import log, error, report_exception
# Simple messages
log("Normal informative message")
log("Blue message", color="blue")
# Error messages
error("This is an error message")
# Log exceptions
try:
# Your code here
raise ValueError("Example error")
except Exception as e:
report_exception(e)
Enhanced Tagging System
The logger supports tagging messages for better organization and filtering:
from loghtml import log, info, debug, warning
# Tagged messages
log("User login", tag="auth")
info("Data processed", tag="processing")
debug("Variable value", tag="debug")
warning("Resource low", tag="system")
Setting Default Tag Colors
You can define default colors for specific tags:
from loghtml import set_default_tag_color
default_tag_colors = {
"database": "LightGrey",
"connection": "LightBlue",
"heartbeat": "Yellow"
}
set_default_tag_color(default_tag_colors)
Configuration
from loghtml import config
# Customize logger settings
config(
max_files=15, # Maximum number of log files
max_size=5000000, # Maximum size per file (5MB)
main_filename="log.html", # Main file name
log_dir="logs" # Directory for logs
)
File Structure
Logs are stored in the specified directory (default: logs/) with the following structure:
logs/
└── log.html (current file)
└── 2023-10-05_12-30-45_log.html (rotated file)
└── 2023-10-05_10-15-32_log.html (rotated file)
Integrated JavaScript Filters
Generated HTML files include advanced filtering capabilities to facilitate analysis:
- Text filtering with AND/OR logic
- Tag-based filtering
- Time period filtering
- Real-time highlighting of matched terms
- Preserved original log view
Complete Example
from loghtml import log, info, debug, warning, error, report_exception, config, set_default_tag_color
# Configure logger
config(
max_files=10,
max_size=2000000, # 2MB
log_dir="my_logs"
)
# Set default tag colors
default_tag_colors = {
"system": "green",
"processing": "cyan",
"checkpoint": "magenta"
}
set_default_tag_color(default_tag_colors)
# Log with different tags and levels
log("Application started", tag="system")
info("Loading configuration", tag="config")
debug("Initializing modules", tag="debug")
for i in range(100):
if i % 10 == 0:
log(f"Checkpoint {i}", tag="checkpoint")
info(f"Processing item {i}", tag="processing")
try:
# Code that might raise an error
result = 10 / 0
except Exception as e:
error("Division by zero detected")
report_exception(e)
log("Application finished", tag="system")
API Reference
log(message, color=None, tag="log")
Logs a message with optional color and tag(s).
info(message, color=None, tag="info")
Logs an informational message.
debug(message, color=None, tag="debug")
Logs a debug message.
warning(message, color=None, tag="warning")
Logs a warning message.
error(message, tag="error")
Logs an error message (in red).
report_exception(exc, timeout=None)
Logs an exception with its full traceback.
config(**kwargs)
Configures logger options:
max_files: Maximum number of files to maintainmax_size: Maximum size in bytes per filemain_filename: Main log file namelog_dir: Directory where logs will be stored
set_default_tag_color(color_dict)
Sets default colors for specific tags:
color_dict: Dictionary mapping tag names to color values
flush()
Processes all pending messages before termination.
Using with PyInstaller
The package is now fully compatible with PyInstaller and includes automatic hook detection:
# Basic usage
pyinstaller --onefile your_script.py
# If you need additional debugging
pyinstaller --collect-all loghtml --onefile your_script.py
The package includes:
- Automatic PyInstaller hook (
hook-loghtml.py) - Proper resource management using
importlib.resources zip-safe = falseconfiguration for maximum compatibility
See PYINSTALLER_GUIDE.md for detailed instructions and troubleshooting.
Development
To contribute to the project:
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Support
If you encounter issues or have questions:
- Check the documentation
- Open an issue
- Contact: rphspires@gmail.com
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Developed by Raphael Pires
- Inspired by the need for better log visualization and analysis tools
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 loghtml-0.1.19.tar.gz.
File metadata
- Download URL: loghtml-0.1.19.tar.gz
- Upload date:
- Size: 18.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5ec14aacab779a56cfb2b2c18d34d42ae1599f715e6cf34fc3a42e4b772822a2
|
|
| MD5 |
3e349a77e3bc5cc67f3726c6d7e71aa9
|
|
| BLAKE2b-256 |
87822e9956dd610e350b611340e8a009832875e94863548a95f7d3fcf297b938
|
File details
Details for the file loghtml-0.1.19-py3-none-any.whl.
File metadata
- Download URL: loghtml-0.1.19-py3-none-any.whl
- Upload date:
- Size: 17.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0800ef9825afc5fb0d3a3a3006f354ae413eceb54fd01635e32cf6e919fcbf7c
|
|
| MD5 |
ef66f6ef9bc01e458de49b7c98fccedb
|
|
| BLAKE2b-256 |
133f2b198de0707a17655b051927b82f9090643cc7d0fd65de3b5ee94bab4d1e
|