Files
analytics/app/logging_config.py
T
JiriUhlir 6934f22253 first
2026-06-18 11:58:23 +02:00

31 lines
812 B
Python

"""Centralized logging setup.
Project rule (see memory ``no-silent-failures``): every error or unexpected
state must reach the log. Never swallow an exception silently. Secrets
(tokens, service-account keys, sessions) must NEVER be logged.
"""
import logging
import os
_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
_configured = False
def configure_logging() -> None:
"""Configure root logging once. Safe to call multiple times."""
global _configured
if _configured:
return
logging.basicConfig(
level=_LEVEL,
format="%(asctime)s %(levelname)s %(name)s %(message)s",
)
_configured = True
def get_logger(name: str) -> logging.Logger:
"""Return a module logger. Use ``get_logger(__name__)``."""
configure_logging()
return logging.getLogger(name)