-#include <syslog.h>
+static char *rcsId = "$Header:";
+
#include <string.h>
#include <stdarg.h>
#include <stdio.h>
+#include <syslog.h>
#define OUR_IDENT_LEN 256
static unsigned ourMaskpri = 0xffffffff;
-static unsigned ourLogopt = 0;
static char ourIdent[OUR_IDENT_LEN] = "";
+static unsigned ourLogopt = 0;
+static unsigned ourFacility = LOG_USER;
void SYSLOG_syslog(int priority, const char *message, ...) {
va_list ap;
+ static const char *pri = "PACEWNID";
+ char idPri[OUR_IDENT_LEN + 3];
+ static const char *mode[] = {
+ "\033[0;1m\033[43;31m",
+ "\033[0;1m\033[43;39m",
+ "\033[43;39m",
+ "\033[0;1m\033[49;31m",
+ "\033[0;1m",
+ "\033[0;1m\033[49;32m",
+ "",
+ "",
+ "\033[49;39m\033[0m"
+ };
+
+ sprintf(idPri, "%s<%c>", ourIdent, pri[priority]);
+
if ((ourLogopt & LOG_PERROR) && (ourMaskpri & (1 << priority))) {
- fprintf(stderr, "%s: ", ourIdent);
+ fprintf(stderr, "%s", mode[priority]);
+ fprintf(stderr, "%s: ", idPri);
va_start(ap, message);
vfprintf(stderr, message, ap);
va_end(ap);
+ fprintf(stderr, "%s", mode[LOG_DEBUG + 1]);
fprintf(stderr, "%c", '\n');
}
+ openlog(idPri, ourLogopt & ~LOG_PERROR, ourFacility);
va_start(ap, message);
vsyslog(priority, message, ap);
va_end(ap);
+ closelog();
}
void SYSLOG_openlog(const char *ident, int logopt, int facility) {
strncpy(ourIdent, ident, OUR_IDENT_LEN-1);
ourLogopt = logopt;
- openlog(ident, logopt, facility);
+ ourFacility = facility;
}
void SYSLOG_closelog(void) {
- closelog();
}
int SYSLOG_setlogmask(int maskpri) {