|
|
import copy |
|
|
import logging |
|
|
import os |
|
|
import sys |
|
|
|
|
|
from modules import shared |
|
|
|
|
|
from src.developer_insights.extension import extensionId, extensionTitle |
|
|
|
|
|
COLORS = { |
|
|
'DEBUG': '\033[0;36m', |
|
|
'INFO': '\033[0;32m', |
|
|
'WARNING': '\033[0;33m', |
|
|
'ERROR': '\033[0;31m', |
|
|
'CRITICAL': '\033[0;37;41m', |
|
|
'RESET': '\033[0m', |
|
|
} |
|
|
|
|
|
|
|
|
class ColoredFormatter(logging.Formatter): |
|
|
def format(self, record): |
|
|
coloredRecord = copy.copy(record) |
|
|
levelName = coloredRecord.levelname |
|
|
seq = COLORS.get(levelName, COLORS['RESET']) |
|
|
coloredRecord.levelName = f'{seq}{levelName}{COLORS["RESET"]}' |
|
|
coloredRecord.msg = f'{seq}{coloredRecord.msg}{COLORS["RESET"]}' |
|
|
return super().format(coloredRecord) |
|
|
|
|
|
logger = logging.getLogger(extensionTitle) |
|
|
logger.propagate = False |
|
|
if not logger.handlers: |
|
|
handler = logging.StreamHandler(sys.stdout) |
|
|
handler.setFormatter(ColoredFormatter('[%(levelName)s %(name)s] %(message)s')) |
|
|
logger.addHandler(handler) |
|
|
logLevelString = getattr(shared.cmd_opts, f'{extensionId}_log_level', 'INFO') |
|
|
logLevel = getattr(logging, logLevelString.upper(), None) |
|
|
if logLevel is None: |
|
|
logger.setLevel(logging.INFO) |
|
|
else: |
|
|
logger.setLevel(logLevel) |
|
|
if os.getenv(f'AUTOMATIC1111_EXTENSION_{extensionId.upper()}_DEBUG', '0') == '1': |
|
|
logger.info('Activating debug logging because of environment variable') |
|
|
logger.setLevel(logging.DEBUG) |
|
|
|