import logging import os import sys from core.errors.logger import logger as core_logger def is_logging_enabled(config): if config is None: return False return bool(config.get("logging", {}).get("gui_logging_enabled")) def setup_gui_logging(gui_cache_home, gui_log_file, current_handlers): os.makedirs(gui_cache_home, exist_ok=True) formatter = logging.Formatter( '%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S' ) file_handler = logging.FileHandler(gui_log_file) file_handler.setLevel(logging.INFO) file_handler.setFormatter(formatter) stream_handler = logging.StreamHandler(sys.stdout) stream_handler.setLevel(logging.INFO) stream_handler.setFormatter(formatter) root_logger = logging.getLogger() root_logger.setLevel(logging.INFO) root_logger.handlers = [] root_logger.addHandler(file_handler) root_logger.addHandler(stream_handler) for handler in current_handlers: try: core_logger.removeHandler(handler) except Exception: pass core_logger.addHandler(file_handler) core_logger.addHandler(stream_handler) if not os.path.exists(gui_log_file) or os.path.getsize(gui_log_file) == 0: logging.info("GUI logging system initialized") return [file_handler, stream_handler] def teardown_gui_logging(gui_log_file, current_handlers): for handler in current_handlers: try: core_logger.removeHandler(handler) except Exception: pass root_logger = logging.getLogger() for handler in list(root_logger.handlers): root_logger.removeHandler(handler) try: handler.close() except Exception: pass if os.path.exists(gui_log_file): os.remove(gui_log_file)