import logging import sys from tqdm import tqdm def get_tqdm_handler(): """ Creates a special handler for tqdm that doesn't interfere with other logs. """ class TqdmLoggingHandler(logging.Handler): def emit(self, record): try: msg = self.format(record) tqdm.write(msg) self.flush() except Exception: self.handleError(record) return TqdmLoggingHandler() def setup_service_logger(service_name: str) -> logging.Logger: """ Configure a specific logger for a given service. """ logger = logging.getLogger(f"app.services.{service_name}") # If the logger already has handlers, don't reconfigure it if logger.handlers: return logger # Add tqdm handler for this service tqdm_handler = get_tqdm_handler() tqdm_handler.setFormatter(logging.Formatter('%(name)s - %(levelname)s - %(message)s')) logger.addHandler(tqdm_handler) # Don't propagate logs to parent loggers logger.propagate = False return logger