24 #include "libsigrok-internal.h"
44 static int sr_logv(
void *cb_data,
int loglevel,
const char *format,
54 static void *sr_log_callback_data = NULL;
58 #define LOGDOMAIN_MAXLEN 30
59 #define LOGDOMAIN_DEFAULT "sr: "
82 if (loglevel < SR_LOG_NONE || loglevel >
SR_LOG_SPEW) {
83 sr_err(
"Invalid loglevel %d.", loglevel);
87 sr_loglevel = loglevel;
89 sr_dbg(
"libsigrok loglevel set to %d.", loglevel);
125 sr_err(
"log: %s: logdomain was NULL", __func__);
132 sr_dbg(
"Log domain set to '%s'.", (
const char *)&sr_log_domain);
148 return g_strdup((
const char *)&sr_log_domain);
169 sr_err(
"log: %s: cb was NULL", __func__);
175 sr_log_callback = cb;
176 sr_log_callback_data = cb_data;
196 sr_log_callback = sr_logv;
197 sr_log_callback_data = NULL;
202 static int sr_logv(
void *cb_data,
int loglevel,
const char *format, va_list args)
210 if (loglevel > sr_loglevel)
213 if (sr_log_domain[0] !=
'\0')
214 fprintf(stderr,
"%s", sr_log_domain);
215 ret = vfprintf(stderr, format, args);
216 fprintf(stderr,
"\n");
227 va_start(args, format);
228 ret = sr_log_callback(sr_log_callback_data, loglevel, format, args);
240 va_start(args, format);
241 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_SPEW, format, args);
253 va_start(args, format);
254 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_DBG, format, args);
266 va_start(args, format);
267 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_INFO, format, args);
279 va_start(args, format);
280 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_WARN, format, args);
292 va_start(args, format);
293 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_ERR, format, args);