sinkserver/sink/logging.c

54 lines
1.2 KiB
C
Raw Normal View History

2021-02-09 18:48:50 +01:00
#define _DEFAULT_SOURCE
2021-02-09 18:47:20 +01:00
2021-02-09 18:32:58 +01:00
#include <syslog.h>
#include <stdarg.h>
2021-02-11 11:28:43 +01:00
#include <stdbool.h>
#include <stdio.h>
2021-02-11 11:30:07 +01:00
#include <string.h>
2021-02-11 11:28:43 +01:00
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;
}
}
2021-02-09 18:32:58 +01:00
void logmsg(int prio, const char* format, ...) {
va_list vl;
2021-02-11 11:28:43 +01:00
char buf[1024];
2021-02-09 18:32:58 +01:00
va_start(vl, format);
2021-02-11 11:28:43 +01:00
vsnprintf(buf, sizeof(buf), format, vl);
2021-02-09 18:32:58 +01:00
va_end(vl);
2021-02-11 11:28:43 +01:00
if (verbose) {
2021-02-11 12:30:46 +01:00
printf("%s\n", buf);
2021-02-11 11:28:43 +01:00
}
openlog("counter", 0, facility);
syslog(prio, buf);
2021-02-09 19:17:14 +01:00
closelog();
2021-02-09 18:32:58 +01:00
}