Spaces:
Paused
Paused
| import logging | |
| import logging.handlers | |
| import os | |
| import sys | |
| from launcher.config import LAUNCHER_LOG_FILE_PATH, LOG_DIR | |
| from logging_utils import GridFormatter, PlainGridFormatter, set_source | |
| logger = logging.getLogger("CamoufoxLauncher") | |
| def setup_launcher_logging(log_level: int = logging.INFO) -> None: | |
| """ | |
| Set up launcher logging system (using GridFormatter) | |
| Args: | |
| log_level: Log level | |
| """ | |
| os.makedirs(LOG_DIR, exist_ok=True) | |
| # Set source to LAUNCHER | |
| set_source("LAUNCHER") | |
| # Use PlainGridFormatter for file logging | |
| file_log_formatter = PlainGridFormatter() | |
| # Use GridFormatter for console (colored output) | |
| console_log_formatter = GridFormatter(show_tree=True, colorize=True) | |
| if logger.hasHandlers(): | |
| logger.handlers.clear() | |
| logger.setLevel(log_level) | |
| logger.propagate = False | |
| if os.path.exists(LAUNCHER_LOG_FILE_PATH): | |
| try: | |
| os.remove(LAUNCHER_LOG_FILE_PATH) | |
| except OSError: | |
| pass | |
| file_handler = logging.handlers.RotatingFileHandler( | |
| LAUNCHER_LOG_FILE_PATH, | |
| maxBytes=10 * 1024 * 1024, # 10MB | |
| backupCount=5, | |
| encoding="utf-8", | |
| mode="w", | |
| ) | |
| file_handler.setFormatter(file_log_formatter) | |
| logger.addHandler(file_handler) | |
| stream_handler = logging.StreamHandler(sys.stderr) | |
| stream_handler.setFormatter(console_log_formatter) | |
| logger.addHandler(stream_handler) | |
| logger.info(f"Log level set to: {logging.getLevelName(logger.getEffectiveLevel())}") | |
| logger.debug(f"Log file path: {LAUNCHER_LOG_FILE_PATH}") | |