Files

29 lines
760 B
Python

"""Structured stdout logging suitable for journald capture."""
import logging
import os
import sys
_CONFIGURED = False
def configure(level: str | int | None = None) -> None:
"""Configure root logging once. Safe to call multiple times."""
global _CONFIGURED
if _CONFIGURED:
return
if level is None:
level = os.environ.get("ASSISTANT_LOG_LEVEL", "INFO").upper()
logging.basicConfig(
level=level,
format="%(asctime)s %(levelname)-5s %(name)s %(message)s",
datefmt="%H:%M:%S",
stream=sys.stdout,
)
_CONFIGURED = True
def get_logger(name: str) -> logging.Logger:
"""Return a logger named `name`; auto-configure on first call."""
configure()
return logging.getLogger(name)