""" Logger - Logging configuration """ import logging import sys from datetime import datetime def setup_logger(name: str = 'geoai', level: str = 'INFO') -> logging.Logger: """ Setup application logger Args: name: Logger name level: Logging level (DEBUG/INFO/WARNING/ERROR) Returns: logging.Logger: Configured logger """ # Create logger logger = logging.getLogger(name) # Set level level_map = { 'DEBUG': logging.DEBUG, 'INFO': logging.INFO, 'WARNING': logging.WARNING, 'ERROR': logging.ERROR } logger.setLevel(level_map.get(level.upper(), logging.INFO)) # Clear existing handlers logger.handlers.clear() # Create console handler console_handler = logging.StreamHandler(sys.stdout) console_handler.setLevel(logging.DEBUG) # Create formatter formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) console_handler.setFormatter(formatter) # Add handler to logger logger.addHandler(console_handler) return logger def get_logger(name: str) -> logging.Logger: """ Get or create logger Args: name: Logger name Returns: logging.Logger: Logger instance """ return logging.getLogger(name)