mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-05-26 08:57:26 +08:00
Add colored logs (#14036)
This commit is contained in:
parent
b30e980a20
commit
63bcaec5d1
@ -5,6 +5,40 @@ import logging
|
|||||||
import sys
|
import sys
|
||||||
import threading
|
import threading
|
||||||
|
|
||||||
|
ANSI_NAMED_COLORS = {
|
||||||
|
'black': '\033[30m',
|
||||||
|
'red': '\033[31m',
|
||||||
|
'green': '\033[32m',
|
||||||
|
'yellow': '\033[33m',
|
||||||
|
'blue': '\033[34m',
|
||||||
|
'magenta': '\033[35m',
|
||||||
|
'cyan': '\033[36m',
|
||||||
|
'white': '\033[37m',
|
||||||
|
}
|
||||||
|
|
||||||
|
ANSI_LEVEL_COLORS = {
|
||||||
|
'DEBUG': ANSI_NAMED_COLORS['cyan'],
|
||||||
|
'INFO': ANSI_NAMED_COLORS['green'],
|
||||||
|
'WARNING': ANSI_NAMED_COLORS['yellow'],
|
||||||
|
'ERROR': ANSI_NAMED_COLORS['red'],
|
||||||
|
'CRITICAL': ANSI_NAMED_COLORS['magenta'],
|
||||||
|
}
|
||||||
|
|
||||||
|
ANSI_RESET = '\033[0m'
|
||||||
|
ANSI_BOLD = '\033[1m'
|
||||||
|
|
||||||
|
|
||||||
|
class ColoredFormatter(logging.Formatter):
|
||||||
|
def format(self, record):
|
||||||
|
color = ANSI_LEVEL_COLORS.get(record.levelname, '')
|
||||||
|
bold = ANSI_BOLD if record.levelno >= logging.WARNING else ''
|
||||||
|
level_tag = f"{bold}{color}[{record.levelname}]{ANSI_RESET} "
|
||||||
|
message = super().format(record)
|
||||||
|
line_color = ANSI_NAMED_COLORS.get(getattr(record, 'color', ''), '')
|
||||||
|
if line_color:
|
||||||
|
return f"{level_tag}{line_color}{message}{ANSI_RESET}"
|
||||||
|
return level_tag + message
|
||||||
|
|
||||||
logs = None
|
logs = None
|
||||||
stdout_interceptor = None
|
stdout_interceptor = None
|
||||||
stderr_interceptor = None
|
stderr_interceptor = None
|
||||||
@ -68,8 +102,10 @@ def setup_logger(log_level: str = 'INFO', capacity: int = 300, use_stdout: bool
|
|||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
logger.setLevel(log_level)
|
logger.setLevel(log_level)
|
||||||
|
|
||||||
|
formatter = ColoredFormatter("%(message)s")
|
||||||
|
|
||||||
stream_handler = logging.StreamHandler()
|
stream_handler = logging.StreamHandler()
|
||||||
stream_handler.setFormatter(logging.Formatter("%(message)s"))
|
stream_handler.setFormatter(formatter)
|
||||||
|
|
||||||
if use_stdout:
|
if use_stdout:
|
||||||
# Only errors and critical to stderr
|
# Only errors and critical to stderr
|
||||||
@ -77,7 +113,7 @@ def setup_logger(log_level: str = 'INFO', capacity: int = 300, use_stdout: bool
|
|||||||
|
|
||||||
# Lesser to stdout
|
# Lesser to stdout
|
||||||
stdout_handler = logging.StreamHandler(sys.stdout)
|
stdout_handler = logging.StreamHandler(sys.stdout)
|
||||||
stdout_handler.setFormatter(logging.Formatter("%(message)s"))
|
stdout_handler.setFormatter(formatter)
|
||||||
stdout_handler.addFilter(lambda record: record.levelno < logging.ERROR)
|
stdout_handler.addFilter(lambda record: record.levelno < logging.ERROR)
|
||||||
logger.addHandler(stdout_handler)
|
logger.addHandler(stdout_handler)
|
||||||
|
|
||||||
|
|||||||
4
main.py
4
main.py
@ -344,9 +344,9 @@ def prompt_worker(q, server_instance):
|
|||||||
# Log Time in a more readable way after 10 minutes
|
# Log Time in a more readable way after 10 minutes
|
||||||
if execution_time > 600:
|
if execution_time > 600:
|
||||||
execution_time = time.strftime("%H:%M:%S", time.gmtime(execution_time))
|
execution_time = time.strftime("%H:%M:%S", time.gmtime(execution_time))
|
||||||
logging.info(f"Prompt executed in {execution_time}")
|
logging.info(f"Prompt executed in {execution_time}", extra={'color': 'green'})
|
||||||
else:
|
else:
|
||||||
logging.info("Prompt executed in {:.2f} seconds".format(execution_time))
|
logging.info("Prompt executed in {:.2f} seconds".format(execution_time), extra={'color': 'green'})
|
||||||
|
|
||||||
if not asset_seeder.is_disabled():
|
if not asset_seeder.is_disabled():
|
||||||
paths = _collect_output_absolute_paths(e.history_result)
|
paths = _collect_output_absolute_paths(e.history_result)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user