summaryrefslogtreecommitdiffstats
path: root/log.c
diff options
context:
space:
mode:
authorNatanael Copa <natanael.copa@gmail.com>2008-10-18 11:52:54 +0200
committerNatanael Copa <natanael.copa@gmail.com>2008-10-18 11:52:54 +0200
commit88d712478a82cad28ddaefb164d5d2df832bb98b (patch)
treeb351e355064dbaef8087e86db5afa63dde42caaa /log.c
downloadsntpc-88d712478a82cad28ddaefb164d5d2df832bb98b.tar.bz2
sntpc-88d712478a82cad28ddaefb164d5d2df832bb98b.tar.xz
initial commit
Diffstat (limited to 'log.c')
-rw-r--r--log.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/log.c b/log.c
new file mode 100644
index 0000000..29bd66f
--- /dev/null
+++ b/log.c
@@ -0,0 +1,72 @@
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
+
+#include "log.h"
+
+static int verbose;
+
+void log_init(int v)
+{
+ verbose = v;
+ openlog("sntpd", LOG_PERROR | LOG_PID, LOG_DAEMON);
+}
+
+
+void log_error(const char *format, ...)
+{
+ va_list va;
+ va_start(va, format);
+ vsyslog(LOG_ERR, format, va);
+ va_end(va);
+}
+
+
+void log_perror(const char *message)
+{
+ log_error("%s: %s", message, strerror(errno));
+}
+
+
+void log_warning(const char *format, ...)
+{
+ va_list va;
+ va_start(va, format);
+ vsyslog(LOG_WARNING, format, va);
+ va_end(va);
+}
+
+void log_critical(const char *format, ...)
+{
+ va_list va;
+ va_start(va, format);
+ vsyslog(LOG_CRIT, format, va);
+ va_end(va);
+}
+
+void log_debug(const char *format, ...)
+{
+ if (verbose) {
+ va_list va;
+ va_start(va, format);
+ vsyslog(LOG_DEBUG, format, va);
+ va_end(va);
+ }
+}
+
+void fatal(const char *emsg)
+{
+ if (emsg == NULL)
+ log_critical("fatal: %s", strerror(errno));
+ else
+ if (errno)
+ log_critical("fatal: %s: %s", emsg, strerror(errno));
+ else
+ log_critical("fatal: %s", emsg);
+ exit(1);
+}
+