void mondemand_log_msg (log_level_t level, const char *fname, int lineno, const char *buf) { const int mondemand_level = get_mondemand_level(level); if (mondemand_level_is_enabled(client, mondemand_level)) { mondemand_log_real(client, fname, lineno, level, MONDEMAND_NULL_TRACE_ID, "%s", buf); } }
static int handle_log_arg (const char *arg, struct mondemand_client *client, int log_count) { const char *sep = ":"; char *text_level; char *buffer; char *tofree; int level; int ret = -1; struct mondemand_trace_id trace_id = MONDEMAND_NULL_TRACE_ID; tofree = buffer = strdup (arg); if (buffer == NULL) { return ret; } text_level = strsep (&buffer, sep); level = mondemand_log_level_from_string (text_level); if (level < 0) { /* level didn't parse so assume its the 3 element form and get * a trace id */ trace_id = mondemand_trace_id (strtoul (text_level, NULL, 0)); text_level = strsep (&buffer, sep); level = mondemand_log_level_from_string (text_level); if (level < 0) { fprintf (stderr, "ERROR: invalid level '%s'\n", text_level); goto END; } } if (buffer != NULL && strcmp (buffer, "") != 0) { /* need to call the underlying implementation call because I need to specify different 'line' numbers so messages aren't counted as repeated */ ret = mondemand_log_real(client, __FILE__, log_count, level, trace_id, "%s", buffer); } else { fprintf (stderr, "WARNING: not sending empty log message\n"); } END: free (tofree); return ret; }