Spaces:
Sleeping
Sleeping
| import logging | |
| from tqdm import tqdm | |
| class TqdmLoggingHandler(logging.Handler): | |
| def emit(self, record): | |
| try: | |
| msg = self.format(record) | |
| tqdm.write(msg) | |
| self.flush() | |
| except Exception: | |
| self.handleError(record) | |
| class Logger: | |
| def __init__(self, name, level=logging.DEBUG): | |
| self.logger = logging.getLogger(name) | |
| self.logger.setLevel(level) | |
| self.formatter = logging.Formatter("%(name)s - %(levelname)s - %(message)s") | |
| # Remove existing handlers to prevent duplicate logs | |
| if self.logger.hasHandlers(): | |
| self.logger.handlers.clear() | |
| # FileHandler for logging to a file | |
| file_handler = logging.FileHandler("logs.txt", mode="w") | |
| file_handler.setFormatter(self.formatter) | |
| self.logger.addHandler(file_handler) | |
| # Custom TqdmLoggingHandler for console output | |
| stream_handler = TqdmLoggingHandler() | |
| stream_handler.setFormatter(self.formatter) | |
| self.logger.addHandler(stream_handler) | |
| def debug(self, message): | |
| self.logger.debug(message) | |
| def info(self, message): | |
| self.logger.info(message) | |
| def warning(self, message): | |
| self.logger.warning(message) | |
| def error(self, message): | |
| self.logger.error(message) | |
| def critical(self, message): | |
| self.logger.critical(message) | |