Description of problem: We were trying to chase up a bug in libguestfs integration with OpenStack. It was made much harder because the only way to diagnose the bug was to manually run the nova service after manually setting environment variables: http://libguestfs.org/guestfs-faq.1.html#debugging-libguestfs It would be much nicer if: (1) There was a Nova setting to enable debugging, like: libguestfs_debug = 1 or something along those lines. (2) Nova used the events API to collect libguestfs debug messages and push them into Openstack's own logging system. See code example below. Version-Release number of selected component (if applicable): Current git version, and all versions AFAIK. --------- Here is how you enable logging programmatically and capture the log messages. (a) As soon as possible after creating the guestfs handle, call either (or better, both) of these functions: g.set_trace (1) # just traces libguestfs API calls g.set_verbose (1) # verbose debugging (b) Register an event handler like this: events = guestfs.EVENT_APPLIANCE | guestfs.EVENT_LIBRARY \ | guestfs.EVENT_WARNING | guestfs.EVENT_TRACE g.set_event_callback (log_callback, events) (c) The log_callback function should look something like this: def log_callback (ev,eh,buf,array): if ev == guestfs.EVENT_APPLIANCE: buf = buf.rstrip() # What just happened? LOG.debug ("event=%s eh=%d buf='%s' array=%s" % (guestfs.event_to_string (ev), eh, buf, array)) There is a fully working example here: https://github.com/libguestfs/libguestfs/blob/master/python/t/420-log-messages.py
Looks like this actually got done in Kilo.