Files
crucible-agent-build-fastap…/app/logging.py

18 lines
567 B
Python

import json
import logging
from urllib.parse import urlsplit, urlunsplit
def redacted_url(url: str) -> str:
parsed = urlsplit(url)
host = parsed.hostname or ""
if ":" in host and not host.startswith("["):
host = f"[{host}]"
if parsed.port:
host = f"{host}:{parsed.port}"
return urlunsplit((parsed.scheme, host, parsed.path, "REDACTED" if parsed.query else "", ""))
def log_event(logger: logging.Logger, event: str, **fields: object) -> None:
logger.info(json.dumps({"event": event, **fields}, default=str, sort_keys=True))