import logging | |
import collections | |
class GradioLogHandler(logging.Handler): | |
def __init__(self, log_queue): | |
super().__init__() | |
self.log_queue = log_queue | |
self.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')) | |
def emit(self, record): | |
self.log_queue.append(self.format(record)) | |
def setup_gradio_logging(): | |
log_queue = collections.deque(maxlen=1000) | |
gradio_handler = GradioLogHandler(log_queue) | |
logging.getLogger().setLevel(logging.INFO) | |
logging.getLogger().addHandler(gradio_handler) | |
return log_queue, gradio_handler | |