pjdlogv
#define pjdlogv_critical(fmt, ap) pjdlogv(LOG_CRIT, (fmt), (ap))
#define pjdlogv_error(fmt, ap) pjdlogv(LOG_ERR, (fmt), (ap))
#define pjdlogv_warning(fmt, ap) pjdlogv(LOG_WARNING, (fmt), (ap))
#define pjdlogv_notice(fmt, ap) pjdlogv(LOG_NOTICE, (fmt), (ap))
#define pjdlogv_info(fmt, ap) pjdlogv(LOG_INFO, (fmt), (ap))
#define pjdlogv_emergency(fmt, ap) pjdlogv(LOG_EMERG, (fmt), (ap))
#define pjdlogv_alert(fmt, ap) pjdlogv(LOG_ALERT, (fmt), (ap))
pjdlogv(loglevel, fmt, ap);
pjdlogv(LOG_ERR, fmt, ap);
void pjdlogv(int loglevel, const char *fmt, va_list ap) __printflike(2, 0);
#define pjdlogv_emergency(fmt, ap) pjdlogv(LOG_EMERG, (fmt), (ap))
#define pjdlogv_alert(fmt, ap) pjdlogv(LOG_ALERT, (fmt), (ap))
#define pjdlogv_critical(fmt, ap) pjdlogv(LOG_CRIT, (fmt), (ap))
#define pjdlogv_error(fmt, ap) pjdlogv(LOG_ERR, (fmt), (ap))
#define pjdlogv_warning(fmt, ap) pjdlogv(LOG_WARNING, (fmt), (ap))
#define pjdlogv_notice(fmt, ap) pjdlogv(LOG_NOTICE, (fmt), (ap))
#define pjdlogv_info(fmt, ap) pjdlogv(LOG_INFO, (fmt), (ap))
pjdlogv(exitcode == EX_OK ? LOG_INFO : LOG_ERR, fmt, ap);