Thread: custom log. variable %h reports [unknown]

custom log. variable %h reports [unknown]

From
Artem Tomyuk
Date:
Hi All!

og_connections = on

log_disconnections = on

log_line_prefix = '===========> %h %u %t %p %x: [%l-1]'    

log_hostname = off

But in logs i see:

===========>  [unknown] 2016-01-26 17:07:46 UTC 1664 0: [1-1]LOG:  connection received: host=192.168.112.181 port=50321

===========> 192.168.112.181 postgres 2016-01-26 17:07:46 UTC 1664 0: [2-1]LOG:  connection authorized: user=postgres database=lb_upr

===========>  [unknown] 2016-01-26 17:08:27 UTC 1665 0: [1-1]LOG:  connection received: host=192.168.112.181 port=50330

The off. docs says that variable %h stands for Remote hostname or IP.

Any ideas?


PS 

DNS server configured to NOT answer on r-lookup queries, because he does not have reverse zone for  my network.


Re: [MASSMAIL]custom log. variable %h reports [unknown]

From
"Gilberto Castillo"
Date:
> Hi All!
>
> og_connections = on
>
> log_disconnections = on
>
> log_line_prefix = '===========> %h %u %t %p %x: [%l-1]'
>
> log_hostname = off
>
> But in logs i see:
>
Hello Artem,

Use this: log_line_prefix = '%t [%p]: [%l-1] [%r]: user=%u ' --'%t [%p]:
[%l-1] user=%u,db=%d '




> ===========>  [*unknown*] 2016-01-26 17:07:46 UTC 1664 0: [1-1]LOG:
> connection received: host=192.168.112.181 port=50321
>
> ===========> 192.168.112.181 postgres 2016-01-26 17:07:46 UTC 1664 0:
> [2-1]LOG:  connection authorized: user=postgres database=lb_upr
>
> ===========>  [*unknown*] 2016-01-26 17:08:27 UTC 1665 0: [1-1]LOG:
> connection received: host=192.168.112.181 port=50330
>
> The off. docs says that variable %h stands for Remote hostname or IP.
>
> Any ideas?
>
>
> PS
>
> DNS server configured to NOT answer on r-lookup queries, because he does
> not have reverse zone for  my network.
>


Saludos,
Gilberto Castillo
ETECSA, La Habana, Cuba



Re: custom log. variable %h reports [unknown]

From
Jerry Sievers
Date:
Artem Tomyuk <admin@leboutique.com> writes:

> Hi All!
>
> og_connections = on
>
> log_disconnections = on
>
> log_line_prefix = '===========> %h %u %t %p %x: [%l-1]'    
>
> log_hostname = off
>
> But in logs i see:
>
> ===========>  [unknown] 2016-01-26 17:07:46 UTC 1664 0: [1-1]LOG:  connection received: host=192.168.112.181
port=50321

Postmaster.

You should get something similar for AutoVac activity and/or anything
else not originated from a particular backend.

> ===========> 192.168.112.181 postgres 2016-01-26 17:07:46 UTC 1664 0: [2-1]LOG:  connection authorized:
user=postgresdatabase=lb_upr 
>
> ===========>  [unknown] 2016-01-26 17:08:27 UTC 1665 0: [1-1]LOG:  connection received: host=192.168.112.181
port=50330
>
> The off. docs says that variable %h stands for Remote hostname or IP.
>
> Any ideas?
>
> PS 
>
> DNS server configured to NOT answer on r-lookup queries, because he does not have reverse zone for  my network.
>

--
Jerry Sievers
Postgres DBA/Development Consulting
e: postgres.consulting@comcast.net
p: 312.241.7800


Re: custom log. variable %h reports [unknown]

From
Tom Lane
Date:
Jerry Sievers <gsievers19@comcast.net> writes:
> Artem Tomyuk <admin@leboutique.com> writes:
>> log_line_prefix = '===========> %h %u %t %p %x: [%l-1]'    
>> But in logs i see:
>> ===========>  [unknown] 2016-01-26 17:07:46 UTC 1664 0: [1-1]LOG:  connection received: host=192.168.112.181
port=50321

> Postmaster.

Good guess, but actually that log entry is emitted in the new backend
process.  We do know the remote IP at that point (obviously, because
we show it in the message).  But we haven't told elog about it quite
yet.  This seems just dumb.  I think we should switch the order of
these two stanzas in BackendInitialize():

    if (Log_connections)
    {
        if (remote_port[0])
            ereport(LOG,
                    (errmsg("connection received: host=%s port=%s",
                            remote_host,
                            remote_port)));
        else
            ereport(LOG,
                    (errmsg("connection received: host=%s",
                            remote_host)));
    }

    /*
     * save remote_host and remote_port in port structure
     */
    port->remote_host = strdup(remote_host);
    port->remote_port = strdup(remote_port);


BTW, the [unknown] bit is actually coming from %u, and that's
correct because we've not yet identified the user.  AFAICS,
elog just prints nothing for %h when the port->remote_host is
not set yet.

            regards, tom lane