log: Move log level check so that it affects all handlers.

Before this change, the loglevel check would only be performed for the
default log handler in libsigrok, but not for other handlers set
via sr_log_callback_set().

This fixes bug #698.
This commit is contained in:
Uwe Hermann 2018-04-22 00:23:10 +02:00
parent 7c59d8f310
commit 2c267f6819
1 changed files with 5 additions and 3 deletions

View File

@ -170,9 +170,7 @@ static int sr_logv(void *cb_data, int loglevel, const char *format, va_list args
/* This specific log callback doesn't need the void pointer data. */
(void)cb_data;
/* Only output messages of at least the selected loglevel(s). */
if (loglevel > cur_loglevel)
return SR_OK;
(void)loglevel;
if (cur_loglevel >= LOGLEVEL_TIMESTAMP) {
elapsed_us = g_get_monotonic_time() - sr_log_start_time;
@ -217,6 +215,10 @@ SR_PRIV int sr_log(int loglevel, const char *format, ...)
int ret;
va_list args;
/* Only output messages of at least the selected loglevel(s). */
if (loglevel > cur_loglevel)
return SR_OK;
va_start(args, format);
ret = sr_log_cb(sr_log_cb_data, loglevel, format, args);
va_end(args);