PyEzTrace⚓︎
Dependency-free tracing, structured logs, and an interactive viewer for understanding real execution paths.
Why teams use PyEzTrace⚓︎
Hierarchical traces
Tree-style output makes nested execution paths readable without extra tooling.
Flexible log formats
Color, plain, JSON, CSV, and logfmt support one code path from local dev to production.
Runtime metrics
Collect timing data and context propagation details where latency and failures actually happen.
Interactive viewer
Inspect input/output previews, CPU, and memory from trace logs in a focused web UI.
Note: The trace viewer UI (
pyeztrace serve) is designed for local development and analysis—it is not intended to be used as a hosted or production solution.
Quick start⚓︎
from pyeztrace.setup import Setup
from pyeztrace import trace
from pyeztrace.custom_logging import Logging
Setup.initialize("MyApp", show_metrics=True, log_format="json", log_dir="logs", log_file="app.log")
log = Logging()
@trace()
def process_order(order_id):
with log.with_context(order_id=order_id):
log.log_info("Processing order")
# ... your code ...
Run your app, then open the trace viewer:
Next steps⚓︎
- Getting Started - Installation and initialization
- Usage - Tracing, context, formats, viewer, and async support
- Configuration - Environment variables and
Setup.initialize()options