Files
spark-pocket-tts/pocket_tts/utils/logging_utils.py
T

42 lines
1.2 KiB
Python

import logging
from contextlib import contextmanager
class PocketTTSFilter(logging.Filter):
def filter(self, record):
return record.name.startswith("pocket_tts")
@contextmanager
def enable_logging(library_name, level):
# Get the specific logger and its parent
logger = logging.getLogger(library_name)
parent_logger = logging.getLogger("pocket_tts")
# Store original configuration
old_level = logger.level
old_parent_level = parent_logger.level
old_handlers = parent_logger.handlers.copy()
# Configure logging format for pocket_tts logger
parent_logger.setLevel(level)
# Clear existing handlers and add our custom formatter with filter
parent_logger.handlers.clear()
handler = logging.StreamHandler()
formatter = logging.Formatter("%(levelname)s: %(message)s")
handler.setFormatter(formatter)
handler.addFilter(PocketTTSFilter())
parent_logger.addHandler(handler)
parent_logger.propagate = False
try:
yield logger
finally:
# Restore original configuration
logger.setLevel(old_level)
parent_logger.setLevel(old_parent_level)
parent_logger.handlers.clear()
for h in old_handlers:
parent_logger.addHandler(h)