Skip to main content

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

  • Pure Loguru Backend: Superior performance and features
  • UDP Remote Monitoring: Real-time log streaming with tracecolor-monitor command
  • File Logging: Automatic rotation, compression, and retention
  • Automatic Configuration: Auto-detects .tracecolor, tracecolor.toml, tracecolor.yml, tracecolor.json
  • Multi-format Support: TOML/YAML/JSON configuration with automatic format detection
  • Multiple Destinations: Simultaneous logging to console, file, and UDP
  • Automatic Dependencies: Loguru installed automatically with pip install
  • Console Script: tracecolor-monitor available globally after installation
  • Enterprise Ready: Thread-safe, async support, production-grade

Installation

# Recommended
uv pip install tracecolor

# Or with pip
pip install tracecolor

This automatically installs:

  • loguru - Advanced logging backend
  • colorlog - Colorized console output

Optional Dependencies

# For YAML configuration support
uv pip install tracecolor[yaml]

# For development
uv 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

Automatic Config Detection

Tracecolor automatically looks for standard config files in the current directory:

  1. .tracecolor (auto-detects format: TOML/YAML/JSON - first priority)
  2. tracecolor.toml (TOML config)
  3. tracecolor.yml (YAML config)
  4. tracecolor.yaml (YAML alternate)
  5. tracecolor.json (JSON config)
# Just create .tracecolor in your project directory (any format)
from tracecolor import tracecolor
logger = tracecolor(__name__)  # Automatically finds and parses .tracecolor

The .tracecolor file automatically detects its format, so you can use TOML, YAML, or JSON - whatever you prefer!

Manual Config File

# Create custom_config.yml
logger = tracecolor(__name__, config_file="custom_config.yml")

Config File Formats

.tracecolor supports all formats - auto-detected!

TOML format:

# TraceColor Configuration
[udp]
enabled = true
host = "127.0.0.1"
port = 9999

[console]
enabled = true
level = "TRACE"

[file]
enabled = false
dir = "./logs"

YAML:

log_level: TRACE
use_udp: true
udp_host: 127.0.0.1
udp_port: 9999
enable_console: true
enable_file: true
log_dir: "./logs"

JSON:

{
    "log_level": "TRACE",
    "use_udp": true,
    "udp_host": "127.0.0.1", 
    "udp_port": 9999,
    "enable_console": true,
    "enable_file": true,
    "log_dir": "./logs"
}

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)

uv pip install --upgrade tracecolor

Step 2: Install enhanced dependencies (optional)

uv 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

# Automatic config detection (looks for tracecolor.yml, tracecolor.yaml, tracecolor.json)
logger = tracecolor(__name__)  # Auto-detects config files

# Or specify custom config file
logger = tracecolor(__name__, config_file="custom_config.yml")

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 functionality
  • enhanced_features.py - New v0.6.0 features and migration guide

License

MIT

Metadata

Release files for tracecolor 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tracecolor 1.0.0
File Size Uploaded
tracecolor-1.0.0.tar.gz 22.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tracecolor 1.0.0
File Interpreter ABI Platform
tracecolor-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 37.5 kB

Release files / tracecolor-1.0.0.tar.gz

Download URL tracecolor-1.0.0.tar.gz
Size 22.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ff0bf39d0bbb3ab747f89f5cb173cc5c9f21325f3fc0656d93d43047fe7b7565
BLAKE2b-256 checksum
How to use checksums
f1eb1d1e1fd7e6a72a5a53b605f39268ce7c792785e1e768e3e0151a97b7a7a6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / tracecolor-1.0.0-py3-none-any.whl

Download URL tracecolor-1.0.0-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ee02f01029047cfc3c6c777f00912e13126172c745a8f1defb68023af66910bf
BLAKE2b-256 checksum
How to use checksums
2e98667c3217bae1d6f35ccef3c567c9e92b319b68abc1d36b456264815b9e64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.7.16

2 release files

0.7.15

2 release files

0.7.14

2 release files

0.7.7

2 release files

0.7.6

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.3

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page