diff --git a/userspace/libwr/include/libwr/wrs-msg.h b/userspace/libwr/include/libwr/wrs-msg.h
index 4b04ede1c57e49d741fec968193da915b11c32e2..5ea28726e90240a8eff4a8cbacb890d027c41a35 100644
--- a/userspace/libwr/include/libwr/wrs-msg.h
+++ b/userspace/libwr/include/libwr/wrs-msg.h
@@ -28,7 +28,7 @@ extern void wrs_msg_filename(char *name);
 extern int wrs_msg_level; /* user can set it in main() or whatever */
 
 /* Optional: prepare all defaults. Like argv[0] to be prefixed, signals... */
-extern void wrs_msg_init(int argc, char **argv);
+extern void wrs_msg_init(int argc, char **argv, int facility);
 
 #ifdef DEBUG /* We had it, so let's keep this build-time thing */
 #  define WRS_MSG_DEFAULT_LEVEL    LOG_DEBUG
@@ -36,6 +36,8 @@ extern void wrs_msg_init(int argc, char **argv);
 #  define WRS_MSG_DEFAULT_LEVEL    LOG_INFO
 #endif
 
+#define WRS_MSG_DEFAULT_FACILITY LOG_USER /* User facility by default */
+
 #define WRS_MSG_DETAILS_AT  LOG_DEBUG /* >= for debug use __LINE__ */
 
 /* This is the external function for it all */
diff --git a/userspace/libwr/wrs-msg.c b/userspace/libwr/wrs-msg.c
index 44a3e53de6f9d6a4c1362fa3060fa5b1d835ded4..7208650caa2df6ffaf1c7d9f5620ab18906deb32 100644
--- a/userspace/libwr/wrs-msg.c
+++ b/userspace/libwr/wrs-msg.c
@@ -14,6 +14,7 @@
 #endif
 
 int wrs_msg_level = WRS_MSG_DEFAULT_LEVEL;
+int wrs_msg_facility = WRS_MSG_DEFAULT_FACILITY;
 
 /* We use debug, info, warning, error and "silent" */
 static int wrs_msg_used_levels[] = {
@@ -40,7 +41,7 @@ static FILE *wrs_msg_f = (FILE *)-1; /* Means "not yet set" */
 static char *prgname; /* always print argv[0], or we get lost */
 
 /* This function is optional, up to the user whether to call it or not */
-void wrs_msg_init(int argc, char **argv)
+void wrs_msg_init(int argc, char **argv, int facility)
 {
 	int i;
 	int max = ARRAY_SIZE(wrs_msg_used_levels) - 1;
@@ -116,6 +117,7 @@ void wrs_msg_init(int argc, char **argv)
 	}
 
 	wrs_msg_level = wrs_msg_used_levels[wrs_msg_pos];
+	wrs_msg_facility = facility;
 
 	/* Prepare for run-time changes */
 	signal(SIGUSR1, wrs_msg_sighandler);
@@ -139,11 +141,11 @@ void __wrs_msg(int level, const char *func, int line, const char *fmt, ...)
 {
 	va_list args;
 	static char *header_string[] = {
-		[LOG_ALERT] = "",
-		[LOG_ERR] = "Error: ",
-		[LOG_WARNING] = "Warning: ",
-		[LOG_INFO] = "",
-		[LOG_DEBUG] = ""
+		[LOG_ALERT]   = "Alert  ",
+		[LOG_ERR]     = "Error  ",
+		[LOG_WARNING] = "Warning",
+		[LOG_INFO]    = "Info   ",
+		[LOG_DEBUG]   = "Debug  "
 	};
 
 	/* If the user didn't set the file, nor init, enforce default now */
@@ -158,7 +160,8 @@ void __wrs_msg(int level, const char *func, int line, const char *fmt, ...)
 		asprintf(&prgname, "<pid-%i>", getpid());
 
 	/* Program name and header, and possibly function and line too */
-	fprintf(wrs_msg_f, "%s: %s", prgname, header_string[level]);
+	fprintf(wrs_msg_f, "<%d>%s (%s):", (wrs_msg_facility | level),
+		header_string[level], prgname);
 	if (level >= WRS_MSG_DETAILS_AT)
 		fprintf(wrs_msg_f, "%s:%i: ", func, line);
 
diff --git a/userspace/tools/wr_mon.c b/userspace/tools/wr_mon.c
index 73566beae0d693db7c6dbfc3f118b684feb0b119..a2b590bbb0794bc1bd7c3ef3ef29c4adff744147 100644
--- a/userspace/tools/wr_mon.c
+++ b/userspace/tools/wr_mon.c
@@ -1137,7 +1137,7 @@ int main(int argc, char *argv[])
 	/* try a pps_gen based approach */
 	uint64_t last_seconds = 0;
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 
 	while ((opt = getopt(argc, argv, "himsoetabwqvH:")) != -1) {
 		switch(opt)
diff --git a/userspace/tools/wr_phytool.c b/userspace/tools/wr_phytool.c
index aeafe24d1d90f10bf8dde034d34d2a99b9766376..5ef6510bfb9a80cb411e61f2ffba72eb06ac6b26 100644
--- a/userspace/tools/wr_phytool.c
+++ b/userspace/tools/wr_phytool.c
@@ -591,7 +591,7 @@ int main(int argc, char **argv)
 	int i;
 	int ep;
 
-	wrs_msg_init(1, argv); /* only use argv[0]: no cmdline */
+	wrs_msg_init(1, argv, LOG_USER); /* only use argv[0]: no cmdline */
 
 	if(argc<3)
 	{
diff --git a/userspace/tools/wrs_checkcfg.c b/userspace/tools/wrs_checkcfg.c
index 111332f09973b438fe5547e12a6c24342907b2fb..cc283f15058d39be51aacdf9e9d81ac434a6a723 100644
--- a/userspace/tools/wrs_checkcfg.c
+++ b/userspace/tools/wrs_checkcfg.c
@@ -12,7 +12,7 @@ int main(int argc, char **argv)
 {
 	int err, verbose = 0;
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 
 me_lazy:
 	if (argc < 2 || !strcmp(argv[1], "-h") || !strcmp(argv[1], "--help")) {
diff --git a/userspace/tools/wrs_leapsec.c b/userspace/tools/wrs_leapsec.c
index c64d2a7fb172e5cadf41db75838dc691966474d4..3df8fb6b75f4be09e5d652c641ce3f923508ceae 100644
--- a/userspace/tools/wrs_leapsec.c
+++ b/userspace/tools/wrs_leapsec.c
@@ -266,7 +266,7 @@ int main(int argc, char *argv[])
 {
 	int ret;
 
-	wrs_msg_init(argc,argv);
+	wrs_msg_init(argc,argv, LOG_DAEMON);
 
 	prgName=argv[0];
 
diff --git a/userspace/tools/wrs_sfp_dump.c b/userspace/tools/wrs_sfp_dump.c
index 6bdf8711bfff5d351548238f98ba74972dce5bbe..545542b7df422a6ea7e90ca620dc32f1cb8ccd18 100644
--- a/userspace/tools/wrs_sfp_dump.c
+++ b/userspace/tools/wrs_sfp_dump.c
@@ -303,7 +303,7 @@ int main(int argc, char **argv)
 	struct shw_sfp_dom hal_sfp_raw_dom_lc[HAL_MAX_PORTS];
 
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 	nports = 18;
 	dump_port = 1;
 
diff --git a/userspace/tools/wrs_status_led.c b/userspace/tools/wrs_status_led.c
index 3d4c587151b9d5cccc3225a666b5c85adf895316..9c7dae15989135ec132917f86b548e163a4e3597 100644
--- a/userspace/tools/wrs_status_led.c
+++ b/userspace/tools/wrs_status_led.c
@@ -55,7 +55,7 @@ int main(int argc, char **argv)
 	int opt;
 
 	/* argc forced to 1: -q and -v are not "quiet" and "verbose" */
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 
 	assert_init(shw_pio_mmap_init());
 	shw_io_init();
diff --git a/userspace/tools/wrs_throttling.c b/userspace/tools/wrs_throttling.c
index 230a536917a1571bf7da8757e9da5e48df1008ef..2e2ed08a0459f465ca072fc6011b7cb2d249759a 100644
--- a/userspace/tools/wrs_throttling.c
+++ b/userspace/tools/wrs_throttling.c
@@ -115,7 +115,7 @@ int main(int argc, char *argv[])
 	prgname = argv[0];
 
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 
 	if (shw_fpga_mmap_init() < 0) {
 		pr_error("%s: Can't access device memory\n", prgname);
diff --git a/userspace/tools/wrs_version.c b/userspace/tools/wrs_version.c
index 0c1d342e83ca110dc7d415f0ec60d59b9af8a039..a592f8e9486278511b1f65c3b5f6a3a42a90b900 100644
--- a/userspace/tools/wrs_version.c
+++ b/userspace/tools/wrs_version.c
@@ -208,7 +208,7 @@ int main(int argc, char **argv)
 	char func='a';
 
 	/* argc forced to 1: -t and -v are not "terse" and "verbose" */
-	wrs_msg_init(1, argv);
+	wrs_msg_init(1, argv, LOG_USER);
 
 	if(argc>=2 && argv[1][0]=='-')
 	{
diff --git a/userspace/tools/wrs_vlans.c b/userspace/tools/wrs_vlans.c
index 59ae6f2b3d39157f44a71dee5e18cd4621cdf942..8a4aedc27a9a36026a1bbb51fb5037a12ae24bde 100644
--- a/userspace/tools/wrs_vlans.c
+++ b/userspace/tools/wrs_vlans.c
@@ -161,7 +161,7 @@ int main(int argc, char *argv[])
 	char *prgname;
 
 	wrs_msg_level = LOG_WARNING;
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_USER);
 	prgname = argv[0];
 
 	if (NPORTS > 8 * sizeof(portmask)) {
diff --git a/userspace/wrs_watchdog/wrs_watchdog.c b/userspace/wrs_watchdog/wrs_watchdog.c
index 32ddad7d11f069ff6e3e894f7c5cf922155ba51b..0aea35292814c8bfa2ea43a4c52aede180246c4c 100644
--- a/userspace/wrs_watchdog/wrs_watchdog.c
+++ b/userspace/wrs_watchdog/wrs_watchdog.c
@@ -275,7 +275,7 @@ int main(int argc, char *argv[])
 		return 0;
 	}
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_DAEMON);
 
 	if (shw_fpga_mmap_init() < 0) {
 		pr_error("%s: Can't access device memory\n", prgname);
diff --git a/userspace/wrsw_hal/hal_main.c b/userspace/wrsw_hal/hal_main.c
index 161465bfe1991865b3bab1a18644e75652f23f65..a1695be49d59c03de863eb63f8c76f8376f80c2d 100644
--- a/userspace/wrsw_hal/hal_main.c
+++ b/userspace/wrsw_hal/hal_main.c
@@ -229,7 +229,7 @@ int main(int argc, char *argv[])
 	static timeout_t update_fan_tmo;
 	static timeout_t update_all_tmo;
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_DAEMON);
 
 	/* Print HAL's version */
 	pr_info("wrsw_hal. Commit %s, built on " __DATE__ "\n", __GIT_VER__);
diff --git a/userspace/wrsw_rtud/rtud.c b/userspace/wrsw_rtud/rtud.c
index f96d854142a2847234f1cc358f215af4781e967c..4a378253430f9192d56e2137bbc6bdd6ef72a14c 100644
--- a/userspace/wrsw_rtud/rtud.c
+++ b/userspace/wrsw_rtud/rtud.c
@@ -375,7 +375,7 @@ int main(int argc, char **argv)
 	unsigned long aging_res = DEFAULT_AGING_RES;	// Aging resolution [sec.]
 	unsigned long aging_time = DEFAULT_AGING_TIME;	// Aging time       [sec.]
 
-	wrs_msg_init(argc, argv);
+	wrs_msg_init(argc, argv, LOG_DAEMON);
 
 	/* Print RTUd's version */
 	pr_info("wrsw_rtud. Commit %s, built on " __DATE__ "\n", __GIT_VER__);