import logging def setup_logger(log_file=None, log_level=logging.INFO): """ Simple function to set up a logger with console and optional file output. Args: log_file: Optional path to a log file log_level: Logging level (default: INFO) Returns: Configured logger instance """ # Create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') # Configure root logger logger = logging.getLogger() logger.setLevel(log_level) # Clear any existing handlers to avoid duplicates if logger.handlers: logger.handlers.clear() # Create console handler console_handler = logging.StreamHandler() console_handler.setFormatter(formatter) logger.addHandler(console_handler) # Create file handler if log_file is specified if log_file: file_handler = logging.FileHandler(log_file) file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger