oneMark McLoughlin wrote:
Add a qemudLog() function which uses syslog() if we're in daemon mode, doesn't output INFO/DEBUG messages unless the verbose flag is set and doesn't output DEBUG messages unless compiled with --enable-debug.
You're all gonna hate this I know, but libvirtd handles syslog by forking an external logger(1) process. Messages sent to stderr go to syslog. This is partly necessary because the SunRPC code within glibc is a bit too happy to send debug messages to stderr & nowhere else.
The brief code snippet to enable this is below (and note my original patch which you can also find on this list enables a test for LOGGER in autoconf):
#ifdef LOGGER /* Send stderr to syslog using logger. It's a lot simpler * to do this. Note that SunRPC in glibc prints lots of * gumf to stderr and it'd be a load of work to change that. */ int fd[2]; if (pipe (fd) == -1) { perror ("pipe"); exit (2); } int pid = fork (); if (pid == -1) { perror ("fork"); exit (2); } if (pid == 0) { /* Child - logger. */ const char *args[] = { "logger", "-tlibvirtd", "-p", "daemon.notice", NULL }; close (fd[1]); dup2 (fd[0], 0); close (fd[0]); execv (LOGGER, (char *const *) args); perror ("execv"); _exit (1); } close (fd[0]); dup2 (fd[1], 2); close (fd[1]); #endif Rich. -- Emerging Technologies, Red Hat http://et.redhat.com/~rjones/ 64 Baker Street, London, W1U 7DF Mobile: +44 7866 314 421 "[Negative numbers] darken the very whole doctrines of the equations and make dark of the things which are in their nature excessively obvious and simple" (Francis Maseres FRS, mathematician, 1759)