Is this a safe/correct way to make a python LogHandler asynchronous?
It would seem to me that writing a class would be better:

class AsyncHandler(threading.Thread):
    def __init__(self, handler):
         self._handler = handler
         self._queue = Queue.Queue()

         self.daemon = True
         self.start()

    def run(self):
        while True:
           record = self._queue.get(True)
           self._handler.emit(record)

    def emit(self, record):
        self._queue.put(record)


Patching objects can be useful, but its usually clearer to create another object like this.