From dfae915b77d7e9cf79f48a42f216994fa06e8032 Mon Sep 17 00:00:00 2001 From: hayden Date: Mon, 11 Nov 2024 11:51:22 +0800 Subject: [PATCH] pref: optimize print logging --- __init__.py | 26 ++++++++------------------ py/config.py | 2 ++ py/download.py | 6 ++---- py/thread.py | 5 +++-- py/utils.py | 24 +++++++++++++++++------- 5 files changed, 32 insertions(+), 31 deletions(-) diff --git a/__init__.py b/__init__.py index 57c96fb..1e608ff 100644 --- a/__init__.py +++ b/__init__.py @@ -12,9 +12,7 @@ version = utils.get_current_version() utils.download_web_distribution(version) -import logging from aiohttp import web -import traceback from .py import services @@ -31,8 +29,7 @@ async def scan_download_tasks(request): return web.json_response({"success": True, "data": result}) except Exception as e: error_msg = f"Read download task list failed: {e}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -57,8 +54,7 @@ async def resume_download_task(request): return web.json_response({"success": True}) except Exception as e: error_msg = f"Resume download task failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -73,8 +69,7 @@ async def delete_model_download_task(request): return web.json_response({"success": True}) except Exception as e: error_msg = f"Delete download task failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -108,8 +103,7 @@ async def create_model(request): return web.json_response({"success": True, "data": {"taskId": task_id}}) except Exception as e: error_msg = f"Create model download task failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -123,8 +117,7 @@ async def read_models(request): return web.json_response({"success": True, "data": result}) except Exception as e: error_msg = f"Read models failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -143,8 +136,7 @@ async def read_model_info(request): return web.json_response({"success": True, "data": result}) except Exception as e: error_msg = f"Read model info failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -175,8 +167,7 @@ async def update_model(request): return web.json_response({"success": True}) except Exception as e: error_msg = f"Update model failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) @@ -197,8 +188,7 @@ async def delete_model(request): return web.json_response({"success": True}) except Exception as e: error_msg = f"Delete model failed: {str(e)}" - logging.error(error_msg) - logging.debug(traceback.format_exc()) + utils.print_error(error_msg) return web.json_response({"success": False, "error": error_msg}) diff --git a/py/config.py b/py/config.py index f4d11a5..bfb04c7 100644 --- a/py/config.py +++ b/py/config.py @@ -1,3 +1,5 @@ +extension_tag = "ComfyUI Model Manager" + extension_uri: str = None model_base_paths: dict[str, list[str]] = {} diff --git a/py/download.py b/py/download.py index 95fafdd..af30fe3 100644 --- a/py/download.py +++ b/py/download.py @@ -1,10 +1,8 @@ import os import uuid import time -import logging import requests import folder_paths -import traceback from typing import Callable, Awaitable, Any, Literal, Union, Optional from dataclasses import dataclass from . import config @@ -225,7 +223,7 @@ async def download_model(task_id: str, request): task_status.error = str(e) await utils.send_json("update_download_task", task_status) task_status.error = None - logging.error(str(e)) + utils.print_error(str(e)) try: status = download_thread_pool.submit(download_task, task_id) @@ -238,7 +236,7 @@ async def download_model(task_id: str, request): task_status.error = str(e) await utils.send_json("update_download_task", task_status) task_status.error = None - logging.error(traceback.format_exc()) + utils.print_error(str(e)) async def download_model_file( diff --git a/py/thread.py b/py/thread.py index e40798e..cabeb54 100644 --- a/py/thread.py +++ b/py/thread.py @@ -1,7 +1,8 @@ import asyncio import threading import queue -import logging + +from . import utils class DownloadThreadPool: @@ -50,7 +51,7 @@ class DownloadThreadPool: with self._lock: self.running_tasks.remove(task_id) except Exception as e: - logging.error(f"worker run error: {str(e)}") + utils.print_error(f"worker run error: {str(e)}") with self._lock: self.workers_count -= 1 diff --git a/py/utils.py b/py/utils.py index e433547..1057d5a 100644 --- a/py/utils.py +++ b/py/utils.py @@ -5,6 +5,7 @@ import shutil import tarfile import logging import requests +import traceback import configparser import comfy.utils @@ -15,6 +16,15 @@ from typing import Any from . import config +def print_info(msg, *args, **kwargs): + logging.info(f"[{config.extension_tag}] {msg}", *args, **kwargs) + + +def print_error(msg, *args, **kwargs): + logging.error(f"[{config.extension_tag}] {msg}", *args, **kwargs) + logging.debug(traceback.format_exc()) + + def normalize_path(path: str): normpath = os.path.normpath(path) return normpath.replace(os.path.sep, "/") @@ -52,8 +62,8 @@ def download_web_distribution(version: str): return try: - logging.info(f"current version {version}, web version {web_version}") - logging.info("Downloading web distribution...") + print_info(f"current version {version}, web version {web_version}") + print_info("Downloading web distribution...") download_url = f"https://github.com/hayden-fr/ComfyUI-Model-Manager/releases/download/v{version}/dist.tar.gz" response = requests.get(download_url, stream=True) response.raise_for_status() @@ -66,7 +76,7 @@ def download_web_distribution(version: str): if os.path.exists(web_path): shutil.rmtree(web_path) - logging.info("Extracting web distribution...") + print_info("Extracting web distribution...") with tarfile.open(temp_file, "r:gz") as tar: members = [ member for member in tar.getmembers() if member.name.startswith("web/") @@ -74,13 +84,13 @@ def download_web_distribution(version: str): tar.extractall(path=config.extension_uri, members=members) os.remove(temp_file) - logging.info("Web distribution downloaded successfully.") + print_info("Web distribution downloaded successfully.") except requests.exceptions.RequestException as e: - logging.error(f"Failed to download web distribution: {e}") + print_error(f"Failed to download web distribution: {e}") except tarfile.TarError as e: - logging.error(f"Failed to extract web distribution: {e}") + print_error(f"Failed to extract web distribution: {e}") except Exception as e: - logging.error(f"An unexpected error occurred: {e}") + print_error(f"An unexpected error occurred: {e}") def resolve_model_base_paths():