import logging from pathlib import Path def setup_logger(config: dict, name: str = None) -> logging.Logger: """Set up logger with configuration from config file.""" logger = logging.getLogger(name or __name__) # Set level from config level = getattr(logging, config["logging"]["level"].upper()) logger.setLevel(level) # Create logs directory if it doesn't exist log_path = Path(config["folders"]["logs"]) log_path.mkdir(exist_ok=True) # Create handlers file_handler = logging.FileHandler(log_path / config["logging"]["file"]) console_handler = logging.StreamHandler() # Create formatter formatter = logging.Formatter(config["logging"]["format"]) file_handler.setFormatter(formatter) console_handler.setFormatter(formatter) # Add handlers logger.addHandler(file_handler) logger.addHandler(console_handler) return logger