Logging¶
Structured lifecycle logging is now exposed from
extended_data.logging and the package root.
from extended_data import Logging
logger = Logging(logger_name="pipeline")
logger.logged_statement("starting", json_data={"service": "api"}, log_level="info")
logger.logged_statement("retrying", json_data={"attempt": 2}, log_level="warning")
Logging helpers share the package’s data-lowering and redaction behavior. When messages include JSON-like payloads, secret-like keys and known caller-provided values can be withheld before output.
from extended_data import Logging
from extended_data.primitives import redact_sensitive_data
logger = Logging(logger_name="safe")
payload = redact_sensitive_data({"token": "abc", "status": "ok"})
logger.logged_statement("decoded payload", json_data=payload, log_level="info")