def METHOD_NAME(queue, module_name, module_id, level, filter=None):
    """Returns a Logger forwarding logs to the queue.
    To be used only once per process, for child logger use getChildLogger function.
    For use in a multiprocess environment, with a log listener process listening to the queue.
    Multiple processes can use the same queue for centralized logging.
    """
    h = logging.handlers.QueueHandler(queue)
    logging.getLogger().addHandler(h)
    logger = logging.getLogger(module_id)
    logger.module_name = module_name
    tagger = TaggerFilter("MODULE", module_name)
    logger.addFilter(tagger)
    if filter:
        logger.addFilter(filter)
        logger.module_filter = filter
    logger.setLevel(level)
    logger.debug("logger initialized")
    return logger