import logging
import time
from colorama import Fore, Style, init
# Initialize colorama for colored console output
init(autoreset=True, strip=False)
# Define color mapping for different log levels
LOG_COLORS = {
"DEBUG": Fore.CYAN, # Light Blue
"WARNING": Fore.YELLOW, # Yellow
"ERROR": Fore.RED, # Red
"CRITICAL": Fore.MAGENTA + Style.BRIGHT # Bright Magenta
}
# Initialize the logger
logger = logging.getLogger("Logger")
logger.setLevel(logging.DEBUG) # Default to INFO, can be changed dynamically
# Remove all existing handlers (prevents duplicate logs)
logger.handlers.clear()
logger.propagate = False
# Console handler with color support
console_handler = logging.StreamHandler()
console_handler.setFormatter(ColoredFormatter("%(asctime)s - %(levelname)s - %(message)s")) # Removed filename
logger.addHandler(console_handler)
# Logging functions for easy access
[docs]
def log_debug(message):
logger.debug(message)
[docs]
def log_info(message):
logger.info(message)
[docs]
def log_warning(message):
logger.warning(message)
[docs]
def log_error(message):
logger.error(message)
[docs]
def log_critical(message):
logger.critical(message)
# Function to dynamically set the logging level
[docs]
def set_log_level(level):
"""
Set the logging level dynamically.
:param level: Logging level (e.g., logging.DEBUG, logging.INFO, logging.WARNING)
"""
logger.setLevel(level)