dikdimon's picture
Upload extensions using SD-Hub extension
c336648 verified
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', # CYAN
'INFO': '\033[0;32m', # GREEN
'WARNING': '\033[0;33m', # YELLOW
'ERROR': '\033[0;31m', # RED
'CRITICAL': '\033[0;37;41m', # WHITE ON RED
'RESET': '\033[0m', # RESET COLOR
}
# Based on https://github.com/Mikubill/sd-webui-controlnet/blob/main/scripts/logging.py
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)