static void log_handler(int lev, const char *fmt, va_list args) { #ifdef WIN32 vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, args); fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n"); #else va_list cap; va_copy(cap,args); /* Otherwise, we must use stdio to avoid log formatting (for autocompletion etc.) */ vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, cap); fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n"); va_end(cap); #endif if (log_file){ ortp_logv_out(lev, fmt, args); } }
static void log_handler(int lev, const char *fmt, va_list args) { #ifdef _WIN32 vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, args); fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n"); #else va_list cap; va_copy(cap,args); #ifdef ANDROID /* IMPORTANT: needed by liblinphone tester to retrieve suite list...*/ cunit_android_trace_handler(lev == ORTP_ERROR, fmt, cap); #else /* Otherwise, we must use stdio to avoid log formatting (for autocompletion etc.) */ vfprintf(lev == ORTP_ERROR ? stderr : stdout, fmt, cap); fprintf(lev == ORTP_ERROR ? stderr : stdout, "\n"); #endif va_end(cap); #endif if (log_file){ ortp_logv_out(lev, fmt, args); } }