Skip to content

Quickstart

Install

pip install ultilog

Zero config

from ultilog import get_logger

log = get_logger()
log.info("app.started")

This lazily configures logging with the dev preset (Rich console, INFO level) and returns a standard-library logger.

Explicit setup

from ultilog import setup, get_logger

setup(level="DEBUG", mode="plain", force=True)
log = get_logger(__name__)
log.debug("debugging")

JSON logging

from ultilog import setup, get_logger

setup(mode="json", force=True)
get_logger("api").info("request.finished")

Context binding

from ultilog import get_logger, logging_context

log = get_logger("worker")

with logging_context(job_id="job_1", queue="emails"):
    log.info("job.started")

Presets

setup(preset="prod", force=True)   # JSON mode, Rich disabled
setup(preset="test", force=True)   # plain mode, WARNING level

CLI diagnostics

python -m ultilog doctor --json
python -m ultilog show-config
python -m ultilog demo --mode json

Run examples

PYTHONPATH=src python examples/01_zero_config.py
PYTHONPATH=src python examples/04_json_mode.py
PYTHONPATH=src python examples/05_context_scope.py

Run tests

pdm sync -G dev
pdm run pytest