32 lines
904 B
Python
32 lines
904 B
Python
import logging
|
||
import os
|
||
|
||
_CONFIGURED = False
|
||
|
||
|
||
def configure_logging() -> None:
|
||
"""Jednotné logování portálu do stdout (zachytí uvicorn / docker logs).
|
||
|
||
Pravidlo projektu: žádné tiché selhání – chyby a neočekávané stavy patří do logu.
|
||
Úroveň lze řídit přes PORTAL_LOG_LEVEL (výchozí INFO)."""
|
||
global _CONFIGURED
|
||
if _CONFIGURED:
|
||
return
|
||
|
||
level_name = (os.environ.get("PORTAL_LOG_LEVEL") or "INFO").upper()
|
||
level = getattr(logging, level_name, logging.INFO)
|
||
|
||
root = logging.getLogger()
|
||
if not root.handlers:
|
||
handler = logging.StreamHandler()
|
||
handler.setFormatter(logging.Formatter("%(asctime)s %(levelname)s %(name)s: %(message)s"))
|
||
root.addHandler(handler)
|
||
root.setLevel(level)
|
||
|
||
_CONFIGURED = True
|
||
|
||
|
||
def get_logger(name: str) -> logging.Logger:
|
||
configure_logging()
|
||
return logging.getLogger(name)
|