]> xenbits.xensource.com Git - libvirt.git/commitdiff
virRaiseErrorLog: Don't skip error printing when enabling debug logging env variable
authorPeter Krempa <pkrempa@redhat.com>
Mon, 22 May 2023 12:58:38 +0000 (14:58 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 5 Jun 2023 11:20:12 +0000 (13:20 +0200)
When a user requests debug logging by setting the environment variable:

LIBVIRT_DEBUG=1

we should log any errors regardless of the setting of e.g.
'LIBVIRT_LOG_OUTPUTS' as the code will log every 'debug' and 'info'
level message to stderr but will skip 'error' level messages.

This obviously makes debugging things very complicated as you can get to
a situation when the error itself is missing.

This can happen e.g. in tests.

Fix the issue by probing the default log level and calling the logger if
it's set for VIR_LOG_DEBUG.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/util/virerror.c

index 0bfa803b1f1d5e4c1a5977b1cba4dab7e262288a..453f19514eb36043b41b3f399419e8c0ca68e29a 100644 (file)
@@ -775,9 +775,11 @@ void virRaiseErrorLog(const char *filename,
      * hate & thus disable that too. If the daemon has set
      * a priority filter though, we should always forward
      * all errors to the logging code.
+     * Similarly when debug priority is the default we want to log the error.
      */
     if (virLogGetNbOutputs() > 0 ||
-        virErrorLogPriorityFilter)
+        virErrorLogPriorityFilter ||
+        virLogGetDefaultPriority() == VIR_LOG_DEBUG)
         virLogMessage(&virLogSelf,
                       priority,
                       filename, linenr, funcname,