diff --git a/log.c b/log.c
index 5d1d0b5..1dacac4 100644
--- 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 @@
 	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, ...)
