22 #include "libsigrokdecode-internal.h"
44 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
54 static void *srd_log_cb_data = NULL;
58 #define LOGDOMAIN_MAXLEN 30
59 #define LOGDOMAIN_DEFAULT "srd: "
83 if (loglevel < SRD_LOG_NONE || loglevel >
SRD_LOG_SPEW) {
84 srd_err(
"Invalid loglevel %d.", loglevel);
88 cur_loglevel = loglevel;
90 srd_dbg(
"libsigrokdecode loglevel set to %d.", loglevel);
126 srd_err(
"log: %s: logdomain was NULL", __func__);
132 srd_dbg(
"Log domain set to '%s'.", (
const char *)&srd_log_domain);
148 return g_strdup((
const char *)&srd_log_domain);
170 srd_err(
"log: %s: cb was NULL", __func__);
177 srd_log_cb_data = cb_data;
197 srd_log_cb = srd_logv;
198 srd_log_cb_data = NULL;
203 static int srd_logv(
void *cb_data,
int loglevel,
const char *format,
212 if (loglevel > cur_loglevel)
215 if (srd_log_domain[0] !=
'\0')
216 fprintf(stderr,
"%s", srd_log_domain);
217 ret = vfprintf(stderr, format, args);
218 fprintf(stderr,
"\n");
224 SRD_PRIV int srd_log(
int loglevel,
const char *format, ...)
229 va_start(args, format);
230 ret = srd_log_cb(srd_log_cb_data, loglevel, format, args);
237 SRD_PRIV int srd_spew(
const char *format, ...)
242 va_start(args, format);
243 ret = srd_log_cb(srd_log_cb_data,
SRD_LOG_SPEW, format, args);
250 SRD_PRIV int srd_dbg(
const char *format, ...)
255 va_start(args, format);
256 ret = srd_log_cb(srd_log_cb_data,
SRD_LOG_DBG, format, args);
263 SRD_PRIV int srd_info(
const char *format, ...)
268 va_start(args, format);
269 ret = srd_log_cb(srd_log_cb_data,
SRD_LOG_INFO, format, args);
276 SRD_PRIV int srd_warn(
const char *format, ...)
281 va_start(args, format);
282 ret = srd_log_cb(srd_log_cb_data,
SRD_LOG_WARN, format, args);
289 SRD_PRIV int srd_err(
const char *format, ...)
294 va_start(args, format);
295 ret = srd_log_cb(srd_log_cb_data,
SRD_LOG_ERR, format, args);