dima806's picture
Upload 51 files
3677ab8 verified
Raw
History Blame Contribute Delete
873 Bytes
"""Centralised logging configuration."""
import logging
import sys
def get_logger(name: str, level: int = logging.INFO) -> logging.Logger:
"""Return a consistently formatted logger.
Args:
name: Logger name (typically ``__name__``).
level: Logging level (default INFO).
Returns:
Configured :class:`logging.Logger` instance.
"""
logger = logging.getLogger(name)
if logger.handlers:
return logger # already configured — avoid duplicate handlers
logger.setLevel(level)
handler = logging.StreamHandler(sys.stdout)
handler.setLevel(level)
formatter = logging.Formatter(
fmt="%(asctime)s | %(levelname)-8s | %(name)s | %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.propagate = False
return logger