sinkserver/sink/logging.c

56 lines
1.3 KiB
C
Raw Permalink 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;
2021-09-21 15:46:55 +02:00
extern bool debug;
2021-02-11 11:28:43 +01:00
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
2021-09-21 15:46:55 +02:00
if (verbose && (debug || (prio != LOG_DEBUG))) {
2021-02-11 12:30:46 +01:00
printf("%s\n", buf);
2021-02-11 11:28:43 +01:00
}
openlog("counter", 0, facility);
2021-02-15 12:36:43 +01:00
syslog(prio, "%s", buf);
2021-02-09 19:17:14 +01:00
closelog();
2021-02-09 18:32:58 +01:00
}