/** * The reason for this function is to make trace logging as fast as possible so that the * function exit/entry history can be captured by default without unduly impacting * performance. Therefore it must do as little as possible. * @param log_level the log level of the message * @param msgno the id of the message to use if the format string is NULL * @param aFormat the printf format string to be used if the message id does not exist * @param ... the printf inserts */ void Log_stackTrace(int log_level, int msgno, int thread_id, int current_depth, const char* name, int line, int* rc) { traceEntry *cur_entry = NULL; if (trace_queue == NULL) return; if (log_level < trace_settings.trace_level) return; cur_entry = Log_pretrace(); memcpy(&(cur_entry->ts), &ts, sizeof(ts)); cur_entry->sametime_count = sametime_count; cur_entry->number = msgno; cur_entry->thread_id = thread_id; cur_entry->depth = current_depth; strcpy(cur_entry->name, name); cur_entry->level = log_level; cur_entry->line = line; if (rc == NULL) cur_entry->has_rc = 0; else { cur_entry->has_rc = 1; cur_entry->rc = *rc; } Log_posttrace(log_level, cur_entry); }
void Log_trace(int log_level, char* buf) { traceEntry *cur_entry = NULL; cur_entry = Log_pretrace(); memcpy(&(cur_entry->ts), &ts, sizeof(ts)); cur_entry->sametime_count = sametime_count; cur_entry->has_rc = 2; strncpy(cur_entry->name, buf, sizeof(cur_entry->name)); Log_posttrace(log_level, cur_entry); }
static void Log_trace(int log_level, char* buf) { traceEntry *cur_entry = NULL; if (trace_queue == NULL) return; cur_entry = Log_pretrace(); memcpy(&(cur_entry->ts), &ts, sizeof(ts)); cur_entry->sametime_count = sametime_count; cur_entry->has_rc = 2; strncpy(cur_entry->name, buf, sizeof(cur_entry->name)); cur_entry->name[MAX_FUNCTION_NAME_LENGTH] = '\0'; Log_posttrace(log_level, cur_entry); }