Bio-AI / utils /logger.py
binduchinnam26
Add BioLitAI-X project
05dc1d3
Raw
History Blame Contribute Delete
866 Bytes
"""
Centralised logging configuration for BioLitAI-X.
Import get_logger(name) in every module instead of logging.getLogger directly.
"""
import logging
import sys
from pathlib import Path
from config import LOG_LEVEL, LOG_DIR
def get_logger(name: str) -> logging.Logger:
logger = logging.getLogger(name)
if logger.handlers:
return logger
logger.setLevel(getattr(logging, LOG_LEVEL.upper(), logging.INFO))
fmt = logging.Formatter(
"%(asctime)s %(levelname)-8s %(name)s %(message)s",
datefmt="%Y-%m-%d %H:%M:%S",
)
ch = logging.StreamHandler(sys.stdout)
ch.setFormatter(fmt)
logger.addHandler(ch)
try:
fh = logging.FileHandler(Path(LOG_DIR) / "biolita.log", encoding="utf-8")
fh.setFormatter(fmt)
logger.addHandler(fh)
except Exception:
pass
return logger