Thread: Re: Capturing both IP address and hostname in the log
[ moving to -hackers ] Adrian Klaver <adrian.klaver@aklaver.com> writes: > On 4/10/25 05:22, Tefft, Michael J wrote: >> We have set log_hostname ON and we get hostname reported – but we do not >> get IP address. We would like to capture both. >> 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. Melanie recently committed a patch (9219093ca) that purports to generalize our log_connections logging ability: Convert the boolean log_connections GUC into a list GUC comprised of the connection aspects to log. This gives users more control over the volume and kind of connection logging. The current log_connections options are 'receipt', 'authentication', and 'authorization'. The empty string disables all connection logging. 'all' enables all available connection logging. I wonder if it'd be reasonable to remove the separate log_hostname GUC and fold it into this infrastructure, and while doing so make it possible to log either or both of the client IP address and hostname. (For that matter, I think there is interest in being able to capture the server IP address too, cf 3516ea768. You might wish to log the IP address only once, not in every log line.) regards, tom lane
On Thu, Apr 10, 2025 at 9:00 AM Tom Lane <tgl@sss.pgh.pa.us> wrote:
[ moving to -hackers ]
Adrian Klaver <adrian.klaver@aklaver.com> writes:
> On 4/10/25 05:22, Tefft, Michael J wrote:
>> We have set log_hostname ON and we get hostname reported – but we do not
>> get IP address. We would like to capture both.
>> 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.
cross-posting to -hackers now that it is here.
v19 plans aside the existing wording is incorrect (just here, other places correctly point out the either-or aspect of the output).
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.
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.