import logging import sys from pathlib import Path from typing import Optional from .config import LOG_FORMAT, LOG_LEVEL, LOG_FILE def setup_logger( name: str = "perplexity", level: Optional[str] = None, log_file: Optional[str] = None, console: bool = True, ) -> logging.Logger: logger = logging.getLogger(name) logger.setLevel(getattr(logging, level or LOG_LEVEL)) logger.handlers.clear() formatter = logging.Formatter(LOG_FORMAT) if console: console_handler = logging.StreamHandler(sys.stdout) console_handler.setFormatter(formatter) logger.addHandler(console_handler) if log_file or LOG_FILE: file_path = Path(log_file or LOG_FILE) file_path.parent.mkdir(parents=True, exist_ok=True) file_handler = logging.FileHandler(file_path, encoding="utf-8") file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger logger = setup_logger() def get_logger(name: str) -> logging.Logger: return logging.getLogger(f"perplexity.{name}")