mirror of
https://github.com/lllyasviel/stable-diffusion-webui-forge.git
synced 2026-07-21 21:01:24 +08:00
64 lines
1.7 KiB
Python
64 lines
1.7 KiB
Python
import logging
|
|
import os
|
|
|
|
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: logging.LogRecord):
|
|
try:
|
|
if tqdm._instances:
|
|
tqdm.write(self.format(record))
|
|
else:
|
|
self.fallback_handler.emit(record)
|
|
except Exception:
|
|
self.fallback_handler.emit(record)
|
|
|
|
|
|
def setup_logging(loglevel: str = None):
|
|
loglevel: str = loglevel or os.environ.get("SD_WEBUI_LOG_LEVEL") or logging.ERROR
|
|
|
|
if os.environ.get("SD_WEBUI_RICH_LOG"):
|
|
from rich.logging import RichHandler
|
|
|
|
handler = RichHandler(show_path=False)
|
|
else:
|
|
formatter = logging.Formatter("%(message)s")
|
|
|
|
handler = logging.StreamHandler()
|
|
handler.setFormatter(formatter)
|
|
|
|
handler = TqdmLoggingHandler(handler)
|
|
handler.setFormatter(formatter)
|
|
|
|
logging.basicConfig(level=loglevel, force=True, handlers=[handler])
|
|
|
|
if os.environ.get("SD_WEBUI_USE_PRINT"):
|
|
return
|
|
|
|
import builtins
|
|
from functools import wraps
|
|
|
|
logger = logging.getLogger("system")
|
|
logger.setLevel(logging.INFO)
|
|
logger.addHandler(handler)
|
|
logger.propagate = False
|
|
|
|
_orig = builtins.print
|
|
|
|
@wraps(_orig)
|
|
def log(*args, **kwargs):
|
|
if kwargs:
|
|
return _orig(*args, **kwargs)
|
|
|
|
try:
|
|
return logger.info(" ".join(str(arg) for arg in args))
|
|
except Exception:
|
|
return _orig(*args, **kwargs)
|
|
|
|
builtins.print = log
|