server: initial support for daemonizing
[fio.git] / log.c
diff --git a/log.c b/log.c
index 5d1d0b52d5f48ec09f705f3bea04dddb53d7160d..1dacac41f118fdd4678d3c7e0911518f0bab4c88 100644 (file)
--- a/log.c
+++ b/log.c
@@ -2,9 +2,24 @@
 #include <fcntl.h>
 #include <string.h>
 #include <stdarg.h>
+#include <syslog.h>
 
 #include "fio.h"
 
+int log_valist(const char *str, va_list args)
+{
+       if (log_syslog) {
+               vsyslog(LOG_INFO, str, args);
+               return 0;
+       } else {
+               char buffer[1024];
+               size_t len;
+
+               len = vsnprintf(buffer, sizeof(buffer), str, args);
+               return fwrite(buffer, len, 1, f_out);
+       }
+}
+
 int log_local(const char *format, ...)
 {
        char buffer[1024];
@@ -12,10 +27,16 @@ int log_local(const char *format, ...)
        size_t len;
 
        va_start(args, format);
-       len = vsnprintf(buffer, sizeof(buffer), format, args);
-       va_end(args);
 
-       return fwrite(buffer, len, 1, f_out);
+       if (log_syslog) {
+               vsyslog(LOG_INFO, format, args);
+               va_end(args);
+               return 0;
+       } else {
+               len = vsnprintf(buffer, sizeof(buffer), format, args);
+               va_end(args);
+               return fwrite(buffer, len, 1, f_out);
+       }
 }
 
 int log_info(const char *format, ...)