From d149521b11b83a1172bdb95f11b9b17c1d615ba4 Mon Sep 17 00:00:00 2001 From: superobk Date: Thu, 23 May 2024 15:41:53 +0800 Subject: [PATCH] feat: logging_time decorator --- README.md | 5 +++++ src/blackbox/melotts.py | 5 ++++- src/configuration.py | 9 ++++++--- src/log/logging_time.py | 15 +++++++++++++++ src/tts/vits/utils.py | 5 +---- 5 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 src/log/logging_time.py diff --git a/README.md b/README.md index a2f274e..563a917 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,11 @@ python main.py ## Configuration Create ".env.yaml" at the root of jarvis-models, and copy the following yaml configuration ```yaml +env: + version: 0.0.1 + host: 0.0.0.0 + port: 8000 + log: level: debug time_format: "%Y-%m-%d %H:%M:%S" diff --git a/src/blackbox/melotts.py b/src/blackbox/melotts.py index 551ed8e..6be8c5f 100644 --- a/src/blackbox/melotts.py +++ b/src/blackbox/melotts.py @@ -7,6 +7,8 @@ from fastapi.responses import JSONResponse from injector import inject from injector import singleton +from ..log.logging_time import logging_time + from ..configuration import MeloConf from .blackbox import Blackbox @@ -14,7 +16,7 @@ import soundfile from melo.api import TTS import logging -logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) @singleton class MeloTTS(Blackbox): @@ -50,6 +52,7 @@ class MeloTTS(Blackbox): text = args[0] return isinstance(text, str) + @logging_time(logger=logger) def processing(self, *args, **kwargs) -> io.BytesIO | bytes: text = args[0] current_time = time.time() diff --git a/src/configuration.py b/src/configuration.py index 30be08f..face1e0 100644 --- a/src/configuration.py +++ b/src/configuration.py @@ -81,7 +81,7 @@ class LogConf(): time_format = "%Y-%m-%d %H:%M:%S" filename: str | None @inject - def __init__(self,config: Configuration) -> None: + def __init__(self, config: Configuration) -> None: self.level = config.get("log.level") c = config.get("log.level", default=DEFAULT_LEVEL).upper() level=logging._nameToLevel.get(c) @@ -95,7 +95,10 @@ class LogConf(): @singleton class EnvConf(): version: str - + host: str + port: str @inject - def __init__(self) -> None: + def __init__(self, config: Configuration) -> None: self.version = "0.0.1" + self.host = config.get("env.host", default="0.0.0.0") + self.port = config.get("env.port", default="8080") \ No newline at end of file diff --git a/src/log/logging_time.py b/src/log/logging_time.py new file mode 100644 index 0000000..7e79411 --- /dev/null +++ b/src/log/logging_time.py @@ -0,0 +1,15 @@ +import time +import logging + +def logging_time(logger: logging.Logger=None): + if logger is None: + logger = logging.getLogger("unknown_logger") + def dec(cb): + def inner(self, *args, **kwargs): + start = time.time() + result = cb(self, *args, **kwargs) + end = time.time() + logger.info(self.__class__.__name__+"."+cb.__name__ + " Time taken: " + str(end - start) + " seconds") + return result + return inner + return dec \ No newline at end of file diff --git a/src/tts/vits/utils.py b/src/tts/vits/utils.py index a311e1c..90e5594 100644 --- a/src/tts/vits/utils.py +++ b/src/tts/vits/utils.py @@ -10,10 +10,7 @@ from scipy.io.wavfile import read import torch MATPLOTLIB_FLAG = False - -logging.basicConfig(stream=sys.stdout, level=logging.DEBUG) -logger = logging - +logger = logging.getLogger(__name__) def load_checkpoint(checkpoint_path, model, optimizer=None): assert os.path.isfile(checkpoint_path)