Make sense. Actually it's printed because `virsh.domain_exists()` was defined like this:
```
def domain_exists(name, **dargs):
    """
    Return True if a domain exits.

    :param name: VM name
    :param dargs: standardized virsh function API keywords
    :return: True operation was successful
    """
    dargs['ignore_status'] = False
    try:
        command("domstate %s" % name, **dargs)
        return True
    except error.CmdError, detail:
        logging.warning("VM %s does not exist:\n%s", name, detail)
        return False
```
If domain doesn't exist, `logging.warning("VM %s does not exist:\n%s", name, detail)` will print the exception detail. Hmmm, use `debug=True` is fine. I can use it to solve the problem you mentioned.
```
    except error.CmdError, detail:
        logging.warning("VM %s does not exist", name)
        if dargs.get('debug', False):
            logging.warning(str(detail))
        return False
```
How about this , if it's fine, I will send another commit :)