sp-hydra-veil-core/core/errors/logger.py

39 lines
1.2 KiB
Python

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)