#define _DEFAULT_SOURCE #include #include #include #include extern bool verbose; int facility = LOG_LOCAL0; void setfacility(const char *facility_p) { if (! strcmp(facility_p, "LOCAL0")) { facility = LOG_LOCAL0; } else if (! strcmp(facility_p, "LOCAL1")) { facility = LOG_LOCAL1; } else if (! strcmp(facility_p, "LOCAL2")) { facility = LOG_LOCAL2; } else if (! strcmp(facility_p, "LOCAL3")) { facility = LOG_LOCAL3; } else if (! strcmp(facility_p, "LOCAL4")) { facility = LOG_LOCAL4; } else if (! strcmp(facility_p, "LOCAL5")) { facility = LOG_LOCAL5; } else if (! strcmp(facility_p, "LOCAL6")) { facility = LOG_LOCAL6; } else if (! strcmp(facility_p, "LOCAL7")) { facility = LOG_LOCAL7; } else if (! strcmp(facility_p, "USER")) { facility = LOG_USER; } else if (! strcmp(facility_p, "DAEMON")) { facility = LOG_DAEMON; } } void logmsg(int prio, const char* format, ...) { va_list vl; char buf[1024]; va_start(vl, format); vsnprintf(buf, sizeof(buf), format, vl); va_end(vl); if (verbose) { printf(buf); } openlog("counter", 0, facility); syslog(prio, buf); closelog(); }