24 #include "sigrok-internal.h"
30 static int sr_logv(
void *cb_data,
int loglevel,
const char *format,
40 static void *sr_log_callback_data = NULL;
43 #define LOGDOMAIN_MAXLEN 30
44 #define LOGDOMAIN_DEFAULT "sr: "
64 if (loglevel < SR_LOG_NONE || loglevel >
SR_LOG_SPEW) {
65 sr_err(
"Invalid loglevel %d.", loglevel);
69 sr_loglevel = loglevel;
71 sr_dbg(
"libsigrok loglevel set to %d.", loglevel);
103 sr_err(
"log: %s: logdomain was NULL", __func__);
110 sr_dbg(
"Log domain set to '%s'.", (
const char *)&sr_log_domain);
124 return g_strdup((
const char *)&sr_log_domain);
143 sr_err(
"log: %s: cb was NULL", __func__);
149 sr_log_callback = cb;
150 sr_log_callback_data = cb_data;
168 sr_log_callback = sr_logv;
169 sr_log_callback_data = NULL;
174 static int sr_logv(
void *cb_data,
int loglevel,
const char *format, va_list args)
182 if (loglevel > sr_loglevel)
185 if (sr_log_domain[0] !=
'\0')
186 fprintf(stderr,
"%s", sr_log_domain);
187 ret = vfprintf(stderr, format, args);
188 fprintf(stderr,
"\n");
198 va_start(args, format);
199 ret = sr_log_callback(sr_log_callback_data, loglevel, format, args);
210 va_start(args, format);
211 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_SPEW, format, args);
222 va_start(args, format);
223 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_DBG, format, args);
234 va_start(args, format);
235 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_INFO, format, args);
246 va_start(args, format);
247 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_WARN, format, args);
258 va_start(args, format);
259 ret = sr_log_callback(sr_log_callback_data,
SR_LOG_ERR, format, args);