from core.Constants import Constants import logging import os import sys data_folder = Constants.HV_TICKETING_DATA_HOME folder_path = f"{data_folder}/logs" os.makedirs(folder_path, exist_ok=True) logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) # Check if debug mode is enabled debug_mode = os.getenv("DEBUG", "").lower() in ("1", "true", "yes") # Console handler: DEBUG messages to terminal (only if debug mode ON) console_handler = logging.StreamHandler(sys.stdout) console_level = logging.DEBUG if debug_mode else logging.WARNING console_handler.setLevel(console_level) console_formatter = logging.Formatter("%(message)s") console_handler.setFormatter(console_formatter) logger.addHandler(console_handler) # File handler: ERROR messages to file (always on) file_handler = logging.FileHandler(f"{folder_path}/errors.log") file_handler.setLevel(logging.ERROR) file_formatter = logging.Formatter( "%(asctime)s - %(levelname)s - %(message)s", datefmt="%Y-%m-%d %H:%M:%S" ) file_handler.setFormatter(file_formatter) logger.addHandler(file_handler) # Function to toggle debug mode dynamically def set_debug(enabled): global debug_mode debug_mode = enabled console_handler.setLevel(logging.DEBUG if enabled else logging.WARNING)