import logging import sys def setup_logger(name): """ Sets up a logger with standard formatting. """ # Ensure stdout handles UTF-8 (Vital for Windows) if hasattr(sys.stdout, 'reconfigure') and sys.stdout.encoding.lower() != 'utf-8': try: sys.stdout.reconfigure(encoding='utf-8') except Exception: pass logger = logging.getLogger(name) logger.setLevel(logging.INFO) # Create handler handler = logging.StreamHandler(sys.stdout) handler.setLevel(logging.INFO) # Create formatter formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) # Add handler to logger if not logger.handlers: logger.addHandler(handler) # Also log to file with UTF-8 encoding file_handler = logging.FileHandler("server_debug.log", encoding='utf-8') file_handler.setFormatter(formatter) logger.addHandler(file_handler) return logger