def execute_command(command, *args):
    try:
        app_name = get_commands()[command]
    except KeyError:
        raise ImmediateHttpResponse('Error getting management command details')

    if isinstance(app_name, BaseCommand):
        # If the command is already loaded, use it directly.
        klass = app_name
    else:
        klass = load_command_class(app_name, command)

    command_args = list(args)

    parser = klass.create_parser(app_name, command)
    options, arguments = parser.parse_args(command_args)
    handle_default_options(options)

    options = options.__dict__

    command_result = StringIO()

    options.update({
        'interactive': False,
        'stdout': command_result
    })

    result = None

    try:
        klass.execute(*arguments, **options)
        command_result.seek(0)
        result = command_result.read()
    except Exception, e:
        logger.error(
            'Command: %s, args: %s, kwargs: %s. Error: %s',
            command,
            ', '.join(arguments),
            str(e)
        )
    options.update({
        'interactive': False,
        'stdout': command_result
    })

    result = None

    try:
        klass.execute(*arguments, **options)
        command_result.seek(0)
        result = command_result.read()
    except Exception, e:
        logger.error(
            'Command: %s, args: %s, kwargs: %s. Error: %s',
            command,
            ', '.join(arguments),
            str(e)
        )
    except SystemExit as e:
        logger.error(
            'Command: %s, args: %s, kwargs: %s. Error: %s',
            command,
            ', '.join(arguments),
            str(e)
        )
        command_result.seek(0)
        result = command_result.read()

    return result