int tools_print(void *net, const char *format, ...) { #define BUF_LEN 1024 va_list ap; char buf[BUF_LEN]; va_start(ap, format); OS_VSNPRINTF(buf, BUF_LEN, format, ap); va_end(ap); printf("%s", buf); return 0; }
void log_trace(void *log, uint32_t pid, uint32_t level, const char *format, ...) { log_t *tmp_log = (log_t *)log; va_list ap; if ((NULL == tmp_log) || (pid >= PIDS_NUM) || (level > tmp_log->levels[pid]) || (0 == (tmp_log->mode & LOG_TO_SCNFILE)) || ((0 == (tmp_log->mode & LOG_TO_SCREEN)) && (NULL == tmp_log->disk_hnd))) { return; } OS_RWLOCK_WRLOCK(&tmp_log->rwlock); os_get_date_time_string(tmp_log->date_time, DATA_TIME_STR_LEN); va_start(ap, format); OS_VSNPRINTF(tmp_log->buf, BUF_LEN, format, ap); va_end(ap); if (0 != (tmp_log->mode & LOG_TO_SCREEN)) { //OS_PRINT("%s %s", tmp_log->date_time, tmp_log->buf); } if (NULL != tmp_log->disk_hnd) { os_file_printf(tmp_log->disk_hnd, "%s %s", tmp_log->date_time, tmp_log->buf); tmp_log->total_lines++; } OS_RWLOCK_WRUNLOCK(&tmp_log->rwlock); if (tmp_log->total_lines > MAX_FILE_LINES) { backup_log(tmp_log); } }