Thread: Capturing both IP address and hostname in the log

Capturing both IP address and hostname in the log

From
"Tefft, Michael J"
Date:

The documentation for log_hostname says:

log_hostname (boolean)

By default, connection log messages only show the IP address of the connecting host. Turning this parameter on causes logging of the host name as well. Note that depending on your host name resolution setup this might impose a non-negligible performance penalty. This parameter can only be set in the postgresql.conf file or on the server command line.

 

https://www.postgresql.org/docs/14/runtime-config-logging.html

 

We have set log_hostname ON and we get hostname reported – but we do not get IP address. We would like to capture both.

Since the doc says “Turning this parameter on causes logging of the host name *as well*” we were hoping we would capture both, but we are not getting what we expect.

 

Is there a way to capture both IP address and hostname in the log messages? Or must we choose “one or the ootehr”?

 

Thanks,

Mike Tefft

 

(We are using PG14 and PG16, but the docs say the same thing, as does PG17)

Re: Capturing both IP address and hostname in the log

From
Adrian Klaver
Date:
On 4/10/25 05:22, Tefft, Michael J wrote:
> The documentation for log_hostname says:
> 
> log_hostname (boolean)
> 
> By default, connection log messages only show the IP address of the 
> connecting host. Turning this parameter on causes logging of the host 
> name as well. Note that depending on your host name resolution setup 
> this might impose a non-negligible performance penalty. This parameter 
> can only be set in the postgresql.conf file or on the server command line.
> 
> https://www.postgresql.org/docs/14/runtime-config-logging.html 
> <https://www.postgresql.org/docs/14/runtime-config-logging.html>
> 
> We have set log_hostname ON and we get hostname reported – but we do not 
> get IP address. We would like to capture both.
> 
> Since the doc says “Turning this parameter on causes logging of the host 
> name **as well**” we were hoping we would capture both, but we are not 
> getting what we expect.
> 
> Is there a way to capture both IP address and hostname in the log 
> messages? Or must we choose “one or the ootehr”?

I see the same thing. It seems either or.

> 
> Thanks,
> 
> Mike Tefft
> 
> (We are using PG14 and PG16, but the docs say the same thing, as does PG17)
> 

-- 
Adrian Klaver
adrian.klaver@aklaver.com




Re: Capturing both IP address and hostname in the log

From
"David G. Johnston"
Date:
On Thu, Apr 10, 2025 at 5:22 AM Tefft, Michael J <Michael.J.Tefft@snapon.com> wrote:

The documentation for log_hostname says:

log_hostname (boolean)

By default, connection log messages only show the IP address of the connecting host. Turning this parameter on causes logging of the host name as well. Note that depending on your host name resolution setup this might impose a non-negligible performance penalty. This parameter can only be set in the postgresql.conf file or on the server command line.

 

https://www.postgresql.org/docs/14/runtime-config-logging.html



Yeah, the wording really should be more like:

diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml
index fea683cb49..c545fee6c9 100644
--- a/doc/src/sgml/config.sgml
+++ b/doc/src/sgml/config.sgml
@@ -7614,10 +7614,11 @@ local0.*    /var/log/postgresql
       </term>
       <listitem>
        <para>
-        By default, connection log messages only show the IP address of the
-        connecting host. Turning this parameter on causes logging of the
-        host name as well.  Note that depending on your host name resolution
-        setup this might impose a non-negligible performance penalty.
+        By default, for TCP/IP-originated connections, the identifier of the host
+        making the connection is its IP address.  Turning this parameter on tells
+        the system to record the resolved host name instead.  Note that depending
+        on your host name resolution setup this might impose a non-negligible
+        performance penalty.
         This parameter can only be set in the <filename>postgresql.conf</filename>
         file or on the server command line.
        </para>


Both the connection logging routine and log_line_prefix %h / %r simply report the "identifier of the host making the connection".

David J.