Files
2025-04-01 21:28:53 -05:00

41 lines
1.3 KiB
Python

import logging
NIKOSIS_LOG_LEVEL = 21
logging.addLevelName(NIKOSIS_LOG_LEVEL, "NIKO_LOG")
class NikoLogFormatter(logging.Formatter):
def __init__(self, standard_fmt, clean_fmt):
super().__init__()
self.standard_formatter = logging.Formatter(standard_fmt)
self.clean_formatter = logging.Formatter(clean_fmt)
def format(self, record):
if record.levelno == NIKOSIS_LOG_LEVEL:
return self.clean_formatter.format(record)
return self.standard_formatter.format(record)
# Setup logger
niko_logger = logging.getLogger("Nikosis Nodes")
niko_logger.setLevel(logging.INFO)
# Remove existing handlers
if niko_logger.handlers:
niko_logger.handlers.clear()
# Create handler with dual formatter
console_handler = logging.StreamHandler()
formatter = NikoLogFormatter(
standard_fmt='\033[92m%(asctime)s - %(levelname)s - %(message)s\033[0m',
clean_fmt='\033[36m%(message)s\033[0m' # Cyan for clean messages
)
console_handler.setFormatter(formatter)
niko_logger.addHandler(console_handler)
niko_logger.propagate = False
# Add custom log method
def niko_log(self, message, *args, **kwargs):
if self.isEnabledFor(NIKOSIS_LOG_LEVEL):
self._log(NIKOSIS_LOG_LEVEL, message, args, **kwargs)
niko_logger.niko_log = niko_log.__get__(niko_logger, logging.Logger)