diff -bruN sipp.2008-07-23/call.cpp sipp.2008-07-23.new/call.cpp
--- sipp.2008-07-23/call.cpp	2008-07-22 21:06:05.000000000 +0200
+++ sipp.2008-07-23.new/call.cpp	2008-08-12 14:53:15.000000000 +0200
@@ -3539,8 +3539,15 @@
       }
       M_callVariableTable->getVar(currentAction->getVarId())->setString(str);
     } else if (currentAction->getActionType() == CAction::E_AT_LOG_TO_FILE) {
+      static const char prio_chars[]="DINWE";
+      static int prio_ints[]={LOG_DEBUG,LOG_INFO,LOG_NOTICE,LOG_WARNING,LOG_ERR};
+      int prio = LOG_INFO;
       char* x = createSendingMessage(currentAction->getMessage(), -2 /* do not add crlf*/);
-      LOG_MSG("%s\n", x);
+      if ((x[0] != '\0') && (x[1] == '-')) {
+        char *p=strchr(prio_chars,x[0]);
+        if ( p != (char *)NULL) { prio=prio_ints[p-prio_chars]; }
+      }
+      LOG_MSG(prio, "%s\n", x);
     } else if (currentAction->getActionType() == CAction::E_AT_LOG_WARNING) {
       char* x = createSendingMessage(currentAction->getMessage(), -2 /* do not add crlf*/);
       WARNING("%s", x);
diff -bruN sipp.2008-07-23/sipp.cpp sipp.2008-07-23.new/sipp.cpp
--- sipp.2008-07-23/sipp.cpp	2008-07-21 16:22:19.000000000 +0200
+++ sipp.2008-07-23.new/sipp.cpp	2008-08-12 15:56:47.000000000 +0200
@@ -284,6 +284,7 @@
 	{"trace_counts", "Dumps individual message counts in a CSV file.", SIPP_OPTION_SETFLAG, &useCountf, 1},
 	{"trace_rtt", "Allow tracing of all response times in <scenario file name>_<pid>_rtt.csv.", SIPP_OPTION_SETFLAG, &dumpInRtt, 1},
 	{"trace_logs", "Allow tracing of <log> actions in <scenario file name>_<pid>_logs.log.", SIPP_OPTION_SETFLAG, &useLogf, 1},
+	{"trace_syslog", "Allow tracing of <log> actions via syslog (for priority start message with X-, X one of DNIWE).", SIPP_OPTION_SETFLAG, &useSyslog, 1},
 
 	{"users", "Instead of starting calls at a fixed rate, begin 'users' calls at startup, and keep the number of calls constant.", SIPP_OPTION_USERS, NULL, 1},
 
@@ -1744,6 +1745,12 @@
       shortmessagef = NULL;
       shortmessagef_overwrite = false;
     }
+  } else if (!strcmp(what, "syslog")) {
+    if (on) {
+      useSyslog = 1;
+    } else {
+      useSyslog = 0;
+    }
   } else {
     WARNING("Unknown log file: %s", what);
   }
@@ -5617,7 +5624,7 @@
   return ret;
 }
 
-int LOG_MSG(char *fmt, ...) {
+int LOG_MSG(int prio, char *fmt, ...) {
   int ret = 0;
   static unsigned long long count = 0;
   if(logfile) {
@@ -5639,6 +5646,12 @@
       count = 0;
     }
   }
+  if(useSyslog) {
+    va_list ap;
+    va_start(ap, fmt);
+    vsyslog(prio, fmt, ap);
+    va_end(ap);
+  }
   return ret;
 }
 
diff -bruN sipp.2008-07-23/sipp.hpp sipp.2008-07-23.new/sipp.hpp
--- sipp.2008-07-23/sipp.hpp	2008-07-14 14:10:34.000000000 +0200
+++ sipp.2008-07-23.new/sipp.hpp	2008-08-12 14:04:01.000000000 +0200
@@ -41,6 +41,7 @@
 #include <netdb.h>
 #include <ctype.h>
 #include <signal.h>
+#include <syslog.h>
 #include <time.h>
 #include <vector>
 #include <string>
@@ -442,6 +443,7 @@
 extern FILE * shortmessagef                       _DEFVAL(0);
 extern FILE * countf                              _DEFVAL(0);
 // extern FILE * timeoutf                            _DEFVAL(0);
+extern bool   useSyslog                           _DEFVAL(0);
 extern bool   useMessagef                         _DEFVAL(0);
 extern bool   useCallDebugf                       _DEFVAL(0);
 extern bool   useShortMessagef                    _DEFVAL(0);
@@ -604,7 +606,7 @@
 int TRACE_MSG(char *fmt, ...);
 int TRACE_CALLDEBUG(char *fmt, ...);
 int TRACE_SHORTMSG(char *fmt, ...);
-int LOG_MSG(char *fmt, ...);
+int LOG_MSG(int prio, char *fmt, ...);
 #ifdef __cplusplus
 }
 #endif
