#include #include #include #include #include #include #include "log.h" static int verbose; void log_init(int v) { verbose = v; openlog("sntpc", LOG_PERROR | LOG_PID, LOG_DAEMON); } void log_error(const char *format, ...) { va_list va; va_start(va, format); vsyslog(LOG_ERR, format, va); va_end(va); } void log_perror(const char *message) { log_error("%s: %s", message, strerror(errno)); } void log_warning(const char *format, ...) { va_list va; va_start(va, format); vsyslog(LOG_WARNING, format, va); va_end(va); } void log_critical(const char *format, ...) { va_list va; va_start(va, format); vsyslog(LOG_CRIT, format, va); va_end(va); } void log_debug(const char *format, ...) { if (verbose) { va_list va; va_start(va, format); vsyslog(LOG_DEBUG, format, va); va_end(va); } } void fatal(const char *emsg) { if (emsg == NULL) log_critical("fatal: %s", strerror(errno)); else if (errno) log_critical("fatal: %s: %s", emsg, strerror(errno)); else log_critical("fatal: %s", emsg); exit(1); }