mirror of
				https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
				synced 2025-11-04 12:03:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import logging
 | 
						|
import os
 | 
						|
 | 
						|
try:
 | 
						|
    from tqdm import tqdm
 | 
						|
 | 
						|
 | 
						|
    class TqdmLoggingHandler(logging.Handler):
 | 
						|
        def __init__(self, fallback_handler: logging.Handler):
 | 
						|
            super().__init__()
 | 
						|
            self.fallback_handler = fallback_handler
 | 
						|
 | 
						|
        def emit(self, record):
 | 
						|
            try:
 | 
						|
                # If there are active tqdm progress bars,
 | 
						|
                # attempt to not interfere with them.
 | 
						|
                if tqdm._instances:
 | 
						|
                    tqdm.write(self.format(record))
 | 
						|
                else:
 | 
						|
                    self.fallback_handler.emit(record)
 | 
						|
            except Exception:
 | 
						|
                self.fallback_handler.emit(record)
 | 
						|
 | 
						|
except ImportError:
 | 
						|
    TqdmLoggingHandler = None
 | 
						|
 | 
						|
 | 
						|
def setup_logging(loglevel):
 | 
						|
    if loglevel is None:
 | 
						|
        loglevel = os.environ.get("SD_WEBUI_LOG_LEVEL")
 | 
						|
 | 
						|
    if not loglevel:
 | 
						|
        return
 | 
						|
 | 
						|
    if logging.root.handlers:
 | 
						|
        # Already configured, do not interfere
 | 
						|
        return
 | 
						|
 | 
						|
    formatter = logging.Formatter(
 | 
						|
        '%(asctime)s %(levelname)s [%(name)s] %(message)s',
 | 
						|
        '%Y-%m-%d %H:%M:%S',
 | 
						|
    )
 | 
						|
 | 
						|
    if os.environ.get("SD_WEBUI_RICH_LOG"):
 | 
						|
        from rich.logging import RichHandler
 | 
						|
        handler = RichHandler()
 | 
						|
    else:
 | 
						|
        handler = logging.StreamHandler()
 | 
						|
        handler.setFormatter(formatter)
 | 
						|
 | 
						|
    if TqdmLoggingHandler:
 | 
						|
        handler = TqdmLoggingHandler(handler)
 | 
						|
 | 
						|
    handler.setFormatter(formatter)
 | 
						|
 | 
						|
    log_level = getattr(logging, loglevel.upper(), None) or logging.INFO
 | 
						|
    logging.root.setLevel(log_level)
 | 
						|
    logging.root.addHandler(handler)
 |