Enhanced Python logger with colorized output, TRACE/PROGRESS levels, UDP monitoring, file logging, and external config support via Loguru backend.
Project description
tracecolor
Enhanced Python logger with colorized output, TRACE/PROGRESS levels, UDP monitoring, and file logging. Powered by Loguru backend for superior performance and features.
Features
Core Features
- Custom TRACE logging level (lower than DEBUG)
- Custom PROGRESS logging level (between DEBUG and INFO)
- Colorized output for different log levels
- Rate-limiting for PROGRESS messages (once per second per call site)
- Simple and clean API
Enhanced Features (v0.7.0)
- Pure Loguru Backend: Superior performance and features
- UDP Remote Monitoring: Real-time log streaming with
tracecolor-monitorcommand - File Logging: Automatic rotation, compression, and retention
- External Configuration: JSON/YAML configuration files
- Multiple Destinations: Simultaneous logging to console, file, and UDP
- Automatic Dependencies: Loguru installed automatically with pip install
- Console Script:
tracecolor-monitoravailable globally after installation - Enterprise Ready: Thread-safe, async support, production-grade
Installation
pip install tracecolor
This automatically installs:
loguru- Advanced logging backendcolorlog- Colorized console output
Optional Dependencies
# For YAML configuration support
pip install tracecolor[yaml]
# For development
pip install tracecolor[dev]
Usage
Basic Usage
from tracecolor import tracecolor
# Create a logger
logger = tracecolor(__name__)
# Log at different levels
logger.trace("Detailed tracing information")
logger.debug("Debugging information")
logger.progress("Progress update information (rate-limited)")
logger.info("General information")
logger.warning("Warning message")
logger.error("Error message")
logger.critical("Critical error")
Enhanced Usage (v0.6.0 Features)
from tracecolor import tracecolor
# Standard usage now automatically uses Loguru backend if available
logger = tracecolor(__name__) # Now powered by Loguru!
logger.info("Better performance, same API")
# Enhanced features explicitly enabled
logger = tracecolor(
name=__name__,
enable_console=True, # Console output (same as original)
enable_udp=True, # UDP remote monitoring
enable_file=True, # File logging with rotation
log_dir="./logs", # Log directory
udp_host="127.0.0.1", # UDP monitoring host
udp_port=9999 # UDP monitoring port
)
# Same API as original tracecolor
logger.info("This message goes to console, file, AND UDP socket")
logger.progress("Progress messages still rate-limited, now with enterprise backend")
# Alternative: convenience function (same result)
from tracecolor import create_enhanced_logger
logger = create_enhanced_logger(__name__, enable_udp=True, enable_file=True, log_dir="logs")
# Monitor logs in real-time (separate terminal)
# tracecolor-monitor
# or: python -m tracecolor.monitor
External Configuration
# Create logging_config.json
{
"logging": {
"enable_console": true,
"enable_file": true,
"enable_udp": true,
"log_dir": "./logs",
"udp_host": "127.0.0.1",
"udp_port": 9999,
"log_level": "INFO"
}
}
# Use configuration file
from tracecolor import tracecolor
logger = tracecolor(__name__, config_file="logging_config.json")
UDP Remote Monitoring
Monitor logs in real-time from any application using enhanced features:
# Terminal 1: Run your application with UDP logging
python your_app.py
# Terminal 2: Monitor logs in real-time
python -m tracecolor.monitor
# Or specify host/port
python -m tracecolor.monitor --host 0.0.0.0 --port 8888
# Legacy format also supported
python tracecolor/monitor.py listen 192.168.1.100 9999
The monitor displays formatted output with timestamps, log levels, and messages in real-time.
Migration Guide
From v0.5.0 to v0.6.0
Step 1: Update package (existing code continues to work)
pip install --upgrade tracecolor
Step 2: Install enhanced dependencies (optional)
pip install tracecolor[enhanced]
Step 3: Optionally enable enhanced features where needed
# Before (still works, now with Loguru backend!)
from tracecolor import tracecolor
logger = tracecolor(__name__) # Automatically uses Loguru if available
# Enhanced features when needed
logger = tracecolor(__name__, enable_udp=True, enable_file=True, log_dir="logs")
Step 4: Add external configuration as projects mature
logger = tracecolor(__name__, config_file="logging.json")
Color Scheme
- TRACE: Gray (bold black)
- DEBUG: Cyan
- PROGRESS: Blue
- INFO: Green
- WARNING: Yellow
- ERROR: Red
- CRITICAL: Bold Red
Examples
See the examples/ directory for comprehensive usage examples:
basic_usage.py- Original v0.5.0 functionalityenhanced_features.py- New v0.6.0 features and migration guide
License
MIT
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
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 tracecolor-0.7.0.tar.gz.
File metadata
- Download URL: tracecolor-0.7.0.tar.gz
- Upload date:
- Size: 15.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb441b7e2fc2b574f7b27df335778baef15e400da932e1eb58db7e3798f74ee0
|
|
| MD5 |
4d01466434d63af2c8eceee087f912bd
|
|
| BLAKE2b-256 |
4f2268329f9eed50d703a65aa7449d07604cd67cbcd49b974570ede9eac40212
|
File details
Details for the file tracecolor-0.7.0-py3-none-any.whl.
File metadata
- Download URL: tracecolor-0.7.0-py3-none-any.whl
- Upload date:
- Size: 14.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9fdf164ede96276e2f34f5237c3e727511809fd378f0423e4c631ee5da926dd
|
|
| MD5 |
5bde141178d2c54bf15ccfaff402425d
|
|
| BLAKE2b-256 |
333861234b0644ef7ae7148b722d0b50a81528b911ca856f7d81c95ab1bc4762
|