async def METHOD_NAME(command):
    """Executes a command, logging output, and return exitcode and output lines
    Args:
        command (str): The command to be run
    Returns:
        (Tuple) exit code, log lines
    """
    log.info("Running command: {}".format(" ".join(command)))
    proc = await asyncio.create_subprocess_exec(
        *command,
        stdout=asyncio.subprocess.PIPE,
        stderr=asyncio.subprocess.PIPE,
    )
    log.info("COMMAND OUTPUT: ")
    output_lines = []
    while True:
        # If at EOF, stop
        if proc.stdout.at_eof() and proc.stderr.at_eof():
            break
        # Handle stdout
        stdout = (await proc.stdout.readline()).decode("utf-8").rstrip()
        if stdout:
            log.info(stdout)
            output_lines.append(stdout)
        # Handle stderr
        stderr = (await proc.stderr.readline()).decode("utf-8").rstrip()
        if stderr:
            # Unfortunately a lot of outputs from rcodesign come out to stderr
            log.warn(stderr)
            output_lines.append(stderr)
    exitcode = await proc.wait()
    log.info("exitcode {}".format(exitcode))
    return exitcode, output_lines