Files
2026-02-28 08:03:12 +01:00

48 lines
1.3 KiB
Python

# /scripts/logger.py
import logging
import sys
import copy
from .node_name import get_node_name
from enum import Enum
class LoggerSettings(Enum):
LOG_LEVEL = logging.INFO
LOG_NAME = "OpenImage"
class OpenImageLoggerFormatter(logging.Formatter):
COLORS = {
"INFO": "\033[0;32m", # Green
"WARNING": "\033[93m", # Yellow
"ERROR": "\033[91m", # Red
"RESET": "\033[0m", # Reset
}
def format(self, record):
record_copy = copy.copy(record)
levelname = record_copy.levelname
seq = self.COLORS.get(levelname, self.COLORS["RESET"])
record_copy.levelname = f"{seq}{levelname}{self.COLORS['RESET']}"
record_copy.name = f"\033[1;34m{record_copy.name}\033[0m"
return super().format(record_copy)
def get_node_logger_prefix(extra_pnginfo, unique_id, display_name):
return f"\"{get_node_name(extra_pnginfo, unique_id, display_name)}\"" + (f" ({display_name})" if display_name else "") + ":"
logger = logging.getLogger(LoggerSettings.LOG_NAME.value)
logger.propagate = False
if not logger.handlers:
handler = logging.StreamHandler(sys.stdout)
handler.setFormatter(OpenImageLoggerFormatter("[%(name)s][%(levelname)s] %(message)s"))
logger.addHandler(handler)
logger.setLevel(LoggerSettings.LOG_LEVEL.value)