def _logging_process(logging_queue, logging_configurer_fn):

    logging_configurer_fn()

    while True:
        record = logging_queue.get()

        # we will receive 'None' if we are to stop processing
        if record is None:
            break

        # dispatch to the appropriate logger, so that any individual
        # module customizations work as expected
        logger = logging.getLogger(record.name)
        logger.handle(record)


# in Python 3.2+ there is 'logging.QueueHandler' which does the same job
dataset/ETHPy150Open bloomberg/phabricator-tools/py/phl/phlsys_multiprocessing.py/_logging_process/original