<div dir="ltr">In case its relevant we have been running a very similar patch Nils since the introduction of the syslog feature.<div><br></div><div>Since the default and expected format on the /dev/log socket is to write without hostname perhaps unix socket should default to hostname=0 ?</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Oct 28, 2015 at 6:21 AM, Nils Hermansson <span dir="ltr"><<a href="mailto:3tnica@gmail.com" target="_blank">3tnica@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Created a new patch as disabling hostame as a configuration option.<span class=""><br><br># HG changeset patch<br># User Nils Hermansson <<a href="mailto:3tnica@gmail.com" target="_blank">3tnica@gmail.com</a>><br></span># Date 1445973553 -3600<br># Tue Oct 27 20:19:13 2015 +0100<br># Node ID 7e4f788192183a3053cd9478ee136bad269a2375<br># Parent f1424eef1966c966e5403c44e3d9470e0af5b7e9<br>Syslog configuration for disabling sending of hostname.<br>hostname=(on/off) default on<br><br>diff -r f1424eef1966 -r 7e4f78819218 src/core/ngx_syslog.c<br>--- a/src/core/ngx_syslog.c Tue Oct 27 16:47:30 2015 +0300<br>+++ b/src/core/ngx_syslog.c Tue Oct 27 20:19:13 2015 +0100<br>@@ -42,6 +42,7 @@<br> peer->pool = cf->pool;<br> peer->facility = NGX_CONF_UNSET_UINT;<br> peer->severity = NGX_CONF_UNSET_UINT;<br>+ peer->hostname = NGX_CONF_UNSET_UINT;<br><br> if (ngx_syslog_parse_args(cf, peer) != NGX_CONF_OK) {<br> return NGX_CONF_ERROR;<br>@@ -53,6 +54,10 @@<br> return NGX_CONF_ERROR;<br> }<br><br>+ if (peer->hostname == NGX_CONF_UNSET_UINT) {<br>+ peer->hostname = 1; /* enabled */<br>+ }<br>+<br> if (peer->facility == NGX_CONF_UNSET_UINT) {<br> peer->facility = 23; /* local7 */<br> }<br>@@ -193,6 +198,12 @@<br><br> peer->tag.data = p + 4;<br> peer->tag.len = len - 4;<br>+ } else if (ngx_strncmp(p, "hostname=", 9) == 0) {<br>+ if (ngx_strcmp(p + 9, "off") == 0) {<br>+ peer->hostname = 0;<br>+ } else {<br>+ peer->hostname = 1;<br>+ }<br><br> } else {<br> ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,<br>@@ -220,6 +231,11 @@<span class=""><br><br> pri = peer->facility * 8 + peer->severity;<br><br></span>+ if (peer->hostname == 0) {<span class=""><br>+ return ngx_sprintf(buf, "<%ui>%V %V: ", pri, &ngx_cached_syslog_time,<br>+ &peer->tag);<br>+ }<br></span><span class="">+<br> return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri, &ngx_cached_syslog_time,<br> &ngx_cycle->hostname, &peer->tag);<br> }<br></span>diff -r f1424eef1966 -r 7e4f78819218 src/core/ngx_syslog.h<br>--- a/src/core/ngx_syslog.h Tue Oct 27 16:47:30 2015 +0300<br>+++ b/src/core/ngx_syslog.h Tue Oct 27 20:19:13 2015 +0100<br>@@ -12,6 +12,7 @@<br> ngx_pool_t *pool;<br> ngx_uint_t facility;<br> ngx_uint_t severity;<br>+ ngx_uint_t hostname;<br> ngx_str_t tag;<br><br> ngx_addr_t server;<div class="gmail_extra"><br><div class="gmail_quote"><span class="">On Tue, Oct 27, 2015 at 3:14 PM, Vladimir Homutov <span dir="ltr"><<a href="mailto:vl@nginx.com" target="_blank">vl@nginx.com</a>></span> wrote:<br></span><div><div class="h5"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div>On Fri, Oct 23, 2015 at 08:51:56PM +0200, Nils Hermansson wrote:<br>
> # HG changeset patch<br>
> # User Nils Hermansson <<a href="mailto:3tnica@gmail.com" target="_blank">3tnica@gmail.com</a>><br>
> # Date 1445625283 -7200<br>
> # Fri Oct 23 20:34:43 2015 +0200<br>
> # Node ID 868fc6b3bf69be611118c597578e749c65698b8c<br>
> # Parent ee16fb0db905cfb858a929374cf623cdf1a0f9d3<br>
> Most standard syslog facilicties do not expect hostname when logging to<br>
> Unix Sockets.<br>
> This patch removes hostname from syslog message when logging to Unix Socket.<br>
> Tested on rsyslog and syslog-ng<br>
><br>
> diff -r ee16fb0db905 -r 868fc6b3bf69 src/core/ngx_syslog.c<br>
> --- a/src/core/ngx_syslog.c Tue Oct 20 21:28:38 2015 +0300<br>
> +++ b/src/core/ngx_syslog.c Fri Oct 23 20:34:43 2015 +0200<br>
> @@ -219,9 +219,17 @@<br>
> ngx_uint_t pri;<br>
><br>
> pri = peer->facility * 8 + peer->severity;<br>
> -<br>
> - return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri,<br>
> &ngx_cached_syslog_time,<br>
> +#if (NGX_HAVE_UNIX_DOMAIN)<br>
> + if (peer->server.sockaddr->sa_family == AF_UNIX) {<br>
> + return ngx_sprintf(buf, "<%ui>%V %V: ", pri,<br>
> &ngx_cached_syslog_time,<br>
> + &peer->tag);<br>
> + } else {<br>
> +#endif<br>
> + return ngx_sprintf(buf, "<%ui>%V %V %V: ", pri,<br>
> &ngx_cached_syslog_time,<br>
> &ngx_cycle->hostname, &peer->tag);<br>
> +#if (NGX_HAVE_UNIX_DOMAIN)<br>
> + }<br>
> +#endif<br>
> }<br>
<br>
</div></div>Hi Nils,<br>
<br>
we agree that there is some inconvenience with local syslog and are<br>
considering adding configuration option to select desired behaviour<br>
at this place.<br>
<br>
Note that there is a simple solution - to setup your syslog daemon<br>
to expect hostname. See <a href="https://trac.nginx.org/nginx/ticket/677" rel="noreferrer" target="_blank">https://trac.nginx.org/nginx/ticket/677</a><br>
and <a href="https://trac.nginx.org/nginx/ticket/783" rel="noreferrer" target="_blank">https://trac.nginx.org/nginx/ticket/783</a>.<br>
<br>
Your suggested patch would breaks existing setups and make message<br>
content depend on transport, what is undesirable.<br>
<br>
_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org" target="_blank">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br>
</blockquote></div></div></div><br></div></div>
<br>_______________________________________________<br>
nginx-devel mailing list<br>
<a href="mailto:nginx-devel@nginx.org">nginx-devel@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-devel" rel="noreferrer" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-devel</a><br></blockquote></div><br></div>