TGDRIVE / utils /logger.py
dragxd's picture
Initial commit
e1a2a92
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)