25 #define NO_LOG_WRAPPERS
27 #include "libsigrok-internal.h"
47 static int sr_logv(
void *cb_data,
int loglevel,
const char *format,
57 static void *sr_log_cb_data = NULL;
61 #define LOGDOMAIN_MAXLEN 30
62 #define LOGDOMAIN_DEFAULT "sr: "
85 if (loglevel < SR_LOG_NONE || loglevel >
SR_LOG_SPEW) {
86 sr_err(
"Invalid loglevel %d.", loglevel);
90 cur_loglevel = loglevel;
92 sr_dbg(
"libsigrok loglevel set to %d.", loglevel);
128 sr_err(
"log: %s: logdomain was NULL", __func__);
135 sr_dbg(
"Log domain set to '%s'.", (
const char *)&sr_log_domain);
151 return g_strdup((
const char *)&sr_log_domain);
172 sr_err(
"log: %s: cb was NULL", __func__);
179 sr_log_cb_data = cb_data;
200 sr_log_cb_data = NULL;
205 static int sr_logv(
void *cb_data,
int loglevel,
const char *format, va_list args)
213 if (loglevel > cur_loglevel)
216 if (sr_log_domain[0] !=
'\0')
217 fprintf(stderr,
"%s", sr_log_domain);
218 ret = vfprintf(stderr, format, args);
219 fprintf(stderr,
"\n");
225 SR_PRIV int sr_log(
int loglevel,
const char *format, ...)
230 va_start(args, format);
231 ret = sr_log_cb(sr_log_cb_data, loglevel, format, args);
238 SR_PRIV int sr_spew(
const char *format, ...)
243 va_start(args, format);
244 ret = sr_log_cb(sr_log_cb_data,
SR_LOG_SPEW, format, args);
251 SR_PRIV int sr_dbg(
const char *format, ...)
256 va_start(args, format);
257 ret = sr_log_cb(sr_log_cb_data,
SR_LOG_DBG, format, args);
264 SR_PRIV int sr_info(
const char *format, ...)
269 va_start(args, format);
270 ret = sr_log_cb(sr_log_cb_data,
SR_LOG_INFO, format, args);
277 SR_PRIV int sr_warn(
const char *format, ...)
282 va_start(args, format);
283 ret = sr_log_cb(sr_log_cb_data,
SR_LOG_WARN, format, args);
290 SR_PRIV int sr_err(
const char *format, ...)
295 va_start(args, format);
296 ret = sr_log_cb(sr_log_cb_data,
SR_LOG_ERR, format, args);