from __future__ import annotations import logging def get_logger(name: str) -> logging.Logger: return logging.getLogger(name) def event(logger: logging.Logger, level: int, name: str, **fields: object) -> None: logger.log(level, "%s %s", name, " ".join(f"{key}={value!r}" for key, value in fields.items())) def phase_message(phase: str | None, reason: str | None) -> str: details: list[str] = [] if phase: details.append(f"phase={phase}") if reason: details.append(f"reason={reason}") return " ".join(details) if details else "no daemon details"