[libvirt] About libvirt.py stdout redirection
Daniel P. Berrange
berrange at redhat.com
Thu Jan 16 10:43:23 UTC 2014
On Thu, Jan 16, 2014 at 06:31:02PM +0800, me,apporc wrote:
> Dear developers,
> As we know libvirt.py using libvirtmod.so, eg:
>
> def defineXML(self, xml):
> """Define a domain, but does not start it.
> This definition is persistent, until explicitly undefined with
> virDomainUndefine(). A previous definition for this domain would be
> overriden if it already exists. """
> ret = libvirtmod.virDomainDefineXML(self._o, xml)
> if ret is None:raise libvirtError('virDomainDefineXML() failed',
> conn=self)
> __tmp = virDomain(self,_obj=ret)
> return __tmp
>
>
> In my python program
>
> #test.py
> import libvirt
> conn=libvirt.open("qemu:///system")
> xml=...
> conn.defineXML(xml) # Because i need this xml to be wrong for feature
> testing here
> # Error will happen here, and error message is printed to stderr.
>
> The error message is annoying.
> I need to know how to hide the error message printing to stderr by
> libvirtmod.
>
> After i add sys.stderr = open('xxx', 'w') before invoking
> conn.defineXML(xml), the error message is still printed to the terminal.
> Which means, i can redirect stderr to anywhere else in my python program,
> but it changes back to terminal when control flow go to libvirtmod.
Do this:
def libvirt_ignore(ignore, err):
pass
libvirt.registerErrorHandler(f=libvirt_ignore, ctx=None)
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list