
On Fri, Mar 04, 2011 at 06:30:56PM +0800, Daniel Veillard wrote:
virLogEmergencyDumpAll() allows to dump the content of the debug buffer from within a signal handler. It saves to all log file or stderr if none is found * src/util/logging.h src/util/logging.c: add the new API and cleanup the old virLogDump code * src/libvirt_private.syms: exports it as a private symbol
Signed-off-by: Daniel Veillard <veillard@redhat.com> --- src/libvirt_private.syms | 1 + src/util/logging.c | 87 +++++++++++++++++++++++++++------------------ src/util/logging.h | 2 +- 3 files changed, 54 insertions(+), 36 deletions(-)
ACK with one small fix....
+static void virLogDumpAllFD(const char *msg, int len) { + int i, found = 0; + + for (i = 0; i < virLogNbOutputs;i++) { + if (virLogOutputs[i].f == virLogOutputToFd) { + int fd = (long) virLogOutputs[i].data; + + if (fd >= 0) + ignore_value (safewrite(fd, msg, len));
Need to be: if (fd >= 0) { ignore_value (safewrite(fd, msg, len)); found = 1; }
+ } + } + if (!found) + ignore_value (safewrite(STDERR_FILENO, msg, len)); +}
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 :|