void _rtpp_log_ewrite(struct cfg *cf, int level, const char *function, const char *format, ...) { va_list ap; char rtpp_log_buff[2048]; char *fmt; if (check_level(cf, cf->log_level, level) == 0) return; va_start(ap, format); if (cf->nodaemon != 0) { fmt = "%s:%s: %s: %s\n"; } else { fmt = "%s:%s: %s: %s"; } snprintf(rtpp_log_buff, sizeof(rtpp_log_buff), fmt, strlvl(level), function, format, strerror(errno)); if (cf->nodaemon != 0) { vfprintf(stderr, rtpp_log_buff, ap); } else { vsyslog_async(level, rtpp_log_buff, ap); } va_end(ap); }
void _rtpp_log_ewrite_va(struct rtpp_log_inst *rli, int level, const char *function, const char *format, va_list ap) { char rtpp_log_buff[2048]; char rtpp_time_buff[32]; const char *call_id; #ifdef RTPP_LOG_ADVANCED va_list apc; #endif if (check_level(rli, level) == 0) return; if (rli->call_id != NULL) { call_id = rli->call_id; } else { call_id = CALL_ID_NONE; } #ifdef RTPP_LOG_ADVANCED if (syslog_async_opened != 0) { snprintf(rtpp_log_buff, sizeof(rtpp_log_buff), rli->eformat_sl, strlvl(level), call_id, function, format, strerror(errno), errno); va_copy(apc, ap); vsyslog_async(level, rtpp_log_buff, apc); va_end(apc); #if !defined(RTPP_DEBUG) return; #endif } #endif ftime(rli, getdtime(), rtpp_time_buff, sizeof(rtpp_time_buff)); snprintf(rtpp_log_buff, sizeof(rtpp_log_buff), rli->eformat_se, rtpp_time_buff, strlvl(level), call_id, function, format, strerror(errno), errno); vfprintf(stderr, rtpp_log_buff, ap); }