39 lines
1.2 KiB
Python
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)
|