zt_log_ty * zt_log_syslog2(int opt, int facility) { #if HAVE_SYSLOG char * name = zt_progname(0, 0); int sysopts = 0; if (opt & ZT_LOG_WITH_PID) { sysopts |= LOG_PID; } openlog(name ? name : "Set name with progname call", sysopts, facility); return zt_log_new(&vtbl, 0); #else /* if HAVE_SYSLOG */ zt_log_ty * logger = zt_log_stderr(ZT_LOG_EMU_SYSLOG); zt_log_printf(zt_log_crit, "Syslog not supported on this platform: falling back to zt_log_stderr"); return logger; #endif /* HAVE_SYSLOG */ }
zt_log_ty * zt_log_debug_logger(zt_log_ty *log) { static zt_log_ty *log_debug_ptr = NULL; static int forced = 0; if (((!log) && (!log_debug_ptr))) { log_debug_ptr = zt_log_stderr( ZT_LOG_WITH_LEVEL ); forced = 1; } if (log) { if (forced) { zt_log_close(log_debug_ptr), forced = 0; } log_debug_ptr = log; } return log_debug_ptr; }
zt_log_ty * zt_log_logger(zt_log_ty *log) { static zt_log_ty * log_log_ptr = NULL; zt_log_ty * last = NULL; if (!log) { /* caller wants the current logger */ if(!log_log_ptr) { /* allocate a default logger */ log_log_ptr = zt_log_stderr( ZT_LOG_WITH_LEVEL ); zt_atexit(log_atexit, log_log_ptr); } return log_log_ptr; } last = log_log_ptr; log_log_ptr = log; return last; }