import logging import sys from pathlib import Path LOG_DIR = Path(__file__).parent.parent / "logs" LOG_DIR.mkdir(parents=True, exist_ok=True) LOG_FILE = LOG_DIR / "chatbot.log" LOG_FORMAT = "%(asctime)s | %(levelname)-8s | %(name)s | %(message)s" DATE_FORMAT = "%Y-%m-%d %H:%M:%S" def get_logger(name: str) -> logging.Logger: logger = logging.getLogger(name) if logger.handlers: return logger logger.setLevel(logging.DEBUG) console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.INFO) console_handler.setFormatter(logging.Formatter(LOG_FORMAT, datefmt=DATE_FORMAT)) file_handler = logging.FileHandler(LOG_FILE, encoding="utf-8") file_handler.setLevel(logging.DEBUG) file_handler.setFormatter(logging.Formatter(LOG_FORMAT, datefmt=DATE_FORMAT)) logger.addHandler(console_handler) logger.addHandler(file_handler) return logger