<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_bench_logger(name=None, short_name=" ", log_to_file=True):
 """ Return a logger instance for given name. The logger will be a child of the bench logger, so anything that is logged to it, will be also logged to bench logger. If a logger with the given name doesn't already exist, create it using the given parameters. :param name: Name of the logger :param short_name: A short name (preferably 3 characters) describing the logger :param log_to_file: Boolean, if True the logger will also log to a file "name.log" """

    global LOGGERS

    # Get the root bench logger if name is none or empty or bench
    if name is None or name == "" or name == "bench":
        return LOGGERS["bench"]

    loggername = "bench." + name

    logger = _check_existing_logger(loggername, short_name)
    if logger is not None:
        return logger
    logger = _get_basic_logger(loggername, log_to_file, get_testcase_logfilename(loggername +
                                                                                 ".log"))
    logger.propagate = True
    LOGGERS[loggername] = BenchLoggerAdapter(logger, {"source": short_name})

    return LOGGERS[loggername]