diff --git a/doc/configuration.txt b/doc/configuration.txt
index 5996407..5eef1ff 100644
--- a/doc/configuration.txt
+++ b/doc/configuration.txt
@@ -1279,7 +1279,12 @@
   <format> is the log format used when generating syslog messages. It may be
            one of the following :
 
-    rfc3164   The RFC3164 syslog message format. This is the default.
+    local     Analog to rfc3164 syslog message format except that hostname
+              field is stripped. This is the default.
+              Note: option "log-send-hostname" switches the default to
+              rfc3164.
+
+    rfc3164   The RFC3164 syslog message format.
               (https://tools.ietf.org/html/rfc3164)
 
     rfc5424   The RFC5424 syslog message format.
@@ -2927,13 +2932,18 @@
               The PID, process name and system name are omitted. This is
               designed to be used with a local log server.
 
+      local   Analog to rfc3164 syslog message format except that hostname
+              field is stripped. This is the default.
+              Note: option "log-send-hostname" switches the default to
+              rfc3164.
+
       raw     A message containing only the text. The level, PID, date, time,
               process name and system name are omitted. This is designed to be
               used in containers or during development, where the severity
               only depends on the file descriptor used (stdout/stderr). This
               is the default.
 
-      rfc3164 The RFC3164 syslog message format. This is the default.
+      rfc3164 The RFC3164 syslog message format.
               (https://tools.ietf.org/html/rfc3164)
 
       rfc5424 The RFC5424 syslog message format.
@@ -7175,7 +7185,12 @@
     <format> is the log format used when generating syslog messages. It may be
              one of the following :
 
-      rfc3164   The RFC3164 syslog message format. This is the default.
+      local     Analog to rfc3164 syslog message format except that hostname
+                field is stripped. This is the default.
+                Note: option "log-send-hostname" switches the default to
+                rfc3164.
+
+      rfc3164   The RFC3164 syslog message format.
                 (https://tools.ietf.org/html/rfc3164)
 
       rfc5424   The RFC5424 syslog message format.
diff --git a/include/haproxy/log-t.h b/include/haproxy/log-t.h
index bfaef7d..c8f52f5 100644
--- a/include/haproxy/log-t.h
+++ b/include/haproxy/log-t.h
@@ -74,6 +74,7 @@
 /* enum for log format */
 enum log_fmt {
 	LOG_FORMAT_UNSPEC = 0,
+	LOG_FORMAT_LOCAL,
 	LOG_FORMAT_RFC3164,
 	LOG_FORMAT_RFC5424,
 	LOG_FORMAT_PRIO,
diff --git a/src/log.c b/src/log.c
index c6ba5e6..6014bfc 100644
--- a/src/log.c
+++ b/src/log.c
@@ -56,6 +56,9 @@
 };
 
 static const struct log_fmt_st log_formats[LOG_FORMATS] = {
+	[LOG_FORMAT_LOCAL] = {
+		.name = "local",
+	},
 	[LOG_FORMAT_RFC3164] = {
 		.name = "rfc3164",
 	},
@@ -1475,6 +1478,14 @@
 				else
 					format = LOG_FORMAT_RFC3164;
 			}
+			else if (metadata[LOG_META_TAG].len) {
+				/* Tag is present but no hostname, we should
+				 * consider we try to emmit a local log
+				 * in legacy format (analog to RFC3164 but
+				 * with stripped hostname).
+				 */
+				format = LOG_FORMAT_LOCAL;
+			}
 			else if (metadata[LOG_META_PRIO].len) {
 				/* the source seems a parsed message
 				 * offering a valid level/prio prefix
@@ -1487,6 +1498,7 @@
 
 	/* prepare priority, stored into 1 single elem */
 	switch (format) {
+		case LOG_FORMAT_LOCAL:
 		case LOG_FORMAT_RFC3164:
 		case LOG_FORMAT_RFC5424:
 		case LOG_FORMAT_PRIO:
@@ -1516,6 +1528,7 @@
 
 	/* prepare timestamp, stored into a max of 4 elems */
 	switch (format) {
+		case LOG_FORMAT_LOCAL:
 		case LOG_FORMAT_RFC3164:
 			/* rfc3164 ex: 'Jan  1 00:00:00 ' */
 			if (metadata && metadata[LOG_META_TIME].len == LOG_LEGACYTIME_LEN) {
@@ -1656,9 +1669,10 @@
 				hdr_ctx.ist_vector[(*nbelem)++] = metadata[LOG_META_HOST];
 				hdr_ctx.ist_vector[(*nbelem)++] = ist2(" ", 1);
 			}
-			else /* the caller MUST fill the hostname */
+			else /* the caller MUST fill the hostname, this field is mandatory */
 				hdr_ctx.ist_vector[(*nbelem)++] = ist2("localhost ", 10);
-
+			/* fall through */
+		case LOG_FORMAT_LOCAL:
 			if (!metadata || !metadata[LOG_META_TAG].len)
 				break;
 
@@ -1918,8 +1932,6 @@
 	if (!metadata[LOG_META_HOST].len) {
 		if (global.log_send_hostname)
 			metadata[LOG_META_HOST] = ist2(global.log_send_hostname, strlen(global.log_send_hostname));
-		else
-			metadata[LOG_META_HOST] = ist2(hostname, strlen(hostname));
 	}
 
 	if (!tagb || !tagb->area)
diff --git a/src/sink.c b/src/sink.c
index 09a3026..4995270 100644
--- a/src/sink.c
+++ b/src/sink.c
@@ -191,8 +191,6 @@
 		if (!metadata[LOG_META_HOST].len) {
 			if (global.log_send_hostname)
 				metadata[LOG_META_HOST] = ist2(global.log_send_hostname, strlen(global.log_send_hostname));
-			else
-				metadata[LOG_META_HOST] = ist2(hostname, strlen(hostname));
 		}
 
 		if (!metadata[LOG_META_TAG].len)
