prime_py / src /primepy /logging_utils.py
sdilbaz's picture
Add PRIME UI and analysis code with Turkey data
7b1174f
Raw History Blame Contribute Delete
950 Bytes
import logging
from typing import Optional
try:
from rich.logging import RichHandler
except Exception: # pragma: no cover - optional
RichHandler = None # type: ignore[assignment]
def configure_logging(level: int = logging.INFO, name: Optional[str] = None) -> logging.Logger:
logger_name = name or "primepy"
logger = logging.getLogger(logger_name)
if logger.handlers:
return logger
logger.setLevel(level)
if RichHandler is not None:
handler: logging.Handler = RichHandler(rich_tracebacks=True, markup=True)
else:
handler = logging.StreamHandler()
formatter = logging.Formatter(
fmt="%(asctime)s | %(levelname)s | %(name)s | %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
if not isinstance(handler, type) and hasattr(handler, "setFormatter"):
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.propagate = False
return logger