Я пытаюсь проверить, существует ли домен, используя API libvirt python "lookupbyname()". Если домен не существует, на консоли выводится сообщение об ошибке «Домен не найден». Мне нужны ошибки или журналы только в системном журнале. Я попытался перенаправить stderr и stdout. Но это не имеет никакого эффекта. Я также пробовал играть с настройками ведения журнала libvirt, описанными в https://libvirt.org/logging.html а> . Эффекта опять нет. Флаг «stdio_handler» в /etc/libvirt/qemu.conf также установлен в «файл».
Ниже приведен мой тестовый код:
import os, sys
import libvirt
conn = libvirt.open('qemu:///system')
# Find the application in the virsh domain
try:
sys.stdout = open(os.devnull, "w")
sys.stderr = open(os.devnull, "w")
dom = conn.lookupByName('abcd')
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
except Exception as e:
syslog.syslog (syslog.LOG_ERR, 'Could not find the domain. ERROR: %s.' % (e))
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
Выход:
$ python test.py
libvirt: QEMU Driver error : Domain not found: no domain with matching name 'abcd'
$
Есть ли способ избежать этой консольной печати?