Source code for coalib.processes.LogPrinterThread

import logging
import queue
import threading

from coalib.processes.communication.LogMessage import LogMessage


[docs]class LogPrinterThread(threading.Thread): """ This is the Thread object that outputs all log messages it gets from its message_queue. Setting obj.running = False will stop within the next 0.1 seconds. """ def __init__(self, message_queue, log_printer=None): threading.Thread.__init__(self) self.running = True self.message_queue = message_queue
[docs] def run(self): while self.running: try: elem = self.message_queue.get(timeout=0.1) if isinstance(elem, LogMessage): logging.log(elem.log_level, elem.message) else: logging.info(elem) except queue.Empty: pass