From f8625248ac83b3b17c054ca617d87022327b8af8 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Mon, 22 May 2023 14:58:38 +0200 Subject: [PATCH] virRaiseErrorLog: Don't skip error printing when enabling debug logging env variable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ján Tomko --- src/util/virerror.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/util/virerror.c b/src/util/virerror.c index 0bfa803b1f..453f19514e 100644 --- a/src/util/virerror.c +++ b/src/util/virerror.c @@ -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,