-#include "log.h"
-
-#include <stdio.h>
+#include <assert.h>
+#include <errno.h>
#include <stdarg.h>
+#include <stddef.h>
+#include <stdio.h>
+#include <string.h>
#include <syslog.h>
-#include <assert.h>
#include <string>
#include <vector>
+#include "log.h"
+
using namespace std;
// Yes, it's a bit ugly.
int syslog_level;
switch (log_level) {
- case NO_LEVEL:
- log_level_str = "";
- syslog_level = LOG_INFO;
- break;
case INFO:
- log_level_str = "INFO: ";
+ log_level_str = "INFO: ";
syslog_level = LOG_INFO;
break;
case WARNING:
syslog_level = LOG_WARNING;
break;
case ERROR:
- log_level_str = "ERROR: ";
+ log_level_str = "ERROR: ";
syslog_level = LOG_ERR;
break;
default:
}
}
}
+
+void log_perror(const char *msg)
+{
+ char errbuf[4096];
+ log(ERROR, "%s: %s", msg, strerror_r(errno, errbuf, sizeof(errbuf)));
+}