diff --git a/src/netopeerguid.c b/src/netopeerguid.c
index 90f19b7..3059c78 100644
--- a/src/netopeerguid.c
+++ b/src/netopeerguid.c
@@ -56,6 +56,7 @@
 #include <sys/un.h>
 #include <sys/stat.h>
 #include <pwd.h>
+#include <syslog.h>
 #include <errno.h>
 #include <limits.h>
 #include <grp.h>
@@ -113,6 +114,7 @@
 pthread_key_t err_reply_key;
 volatile int isterminated = 0;
 static char* password;
+int daemonize;
 
 json_object *create_ok_reply(void);
 json_object *create_data_reply(const char *data);
@@ -2086,16 +2088,16 @@
 {
     switch (level) {
     case NC_VERB_ERROR:
-        ERROR("ERROR: %s", msg);
+        ERROR("lib ERROR: %s", msg);
         break;
     case NC_VERB_WARNING:
-        ERROR("WARNING: %s", msg);
+        ERROR("lib WARNING: %s", msg);
         break;
     case NC_VERB_VERBOSE:
-        ERROR("VERBOSE: %s", msg);
+        ERROR("lib VERBOSE: %s", msg);
         break;
     case NC_VERB_DEBUG:
-        DEBUG("DEBUG: %s", msg);
+        DEBUG("lib DEBUG: %s", msg);
         break;
     }
 
@@ -3837,7 +3839,7 @@
 {
     struct sigaction action;
     sigset_t block_mask;
-    int daemonize = 0, i;
+    int i;
 
     if (argc > 3) {
         printf("Usage: [--(h)elp] [--(d)aemon] [socket-path]\n");
@@ -3856,9 +3858,12 @@
         }
     }
 
-    if (daemonize && (daemon(0, 0) == -1)) {
-        ERROR("daemon() failed (%s)", strerror(errno));
-        return 1;
+    if (daemonize) {
+        if (daemon(0, 0) == -1) {
+            ERROR("daemon() failed (%s)", strerror(errno));
+            return 1;
+        }
+        openlog("netopeerguid", LOG_PID, LOG_DAEMON);
     }
 
     sigfillset(&block_mask);
@@ -3870,5 +3875,8 @@
 
     forked_proc();
     DEBUG("Terminated");
+    if (daemonize) {
+        closelog();
+    }
     return 0;
 }
