Обсуждение: pgsql: Log remote NOTICE, WARNING, and similar messages using ereport()
Log remote NOTICE, WARNING, and similar messages using ereport(). Previously, NOTICE, WARNING, and similar messages received from remote servers over replication, postgres_fdw, or dblink connections were printed directly to stderr on the local server (e.g., the subscriber). As a result, these messages lacked log prefixes (e.g., timestamp), making them harder to trace and correlate with other log entries. This commit addresses the issue by introducing a custom notice receiver for replication, postgres_fdw, and dblink connections. These messages are now logged via ereport(), ensuring they appear in the logs with proper formatting and context, which improves clarity and aids in debugging. Author: Vignesh C <vignesh21@gmail.com> Reviewed-by: Álvaro Herrera <alvherre@kurilemu.de> Reviewed-by: Fujii Masao <masao.fujii@gmail.com> Discussion: https://postgr.es/m/CALDaNm2xsHpWRtLm-VL_HJCsaE3+1Y_n-jDEAr3-suxVqc3xoQ@mail.gmail.com Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/112faf1378ee62db75cd9e3223c86bf53b8c2736 Modified Files -------------- contrib/dblink/dblink.c | 7 +++++ contrib/postgres_fdw/connection.c | 3 +++ .../libpqwalreceiver/libpqwalreceiver.c | 3 +++ src/include/libpq/libpq-be-fe-helpers.h | 30 ++++++++++++++++++++++ 4 files changed, 43 insertions(+)
Re: pgsql: Log remote NOTICE, WARNING, and similar messages using ereport()
От
Andrei Lepikhov
Дата:
On 22/7/2025 07:22, Fujii Masao wrote:
> Log remote NOTICE, WARNING, and similar messages using ereport().
>
> Previously, NOTICE, WARNING, and similar messages received from remote
> servers over replication, postgres_fdw, or dblink connections were printed
> directly to stderr on the local server (e.g., the subscriber). As a result,
> these messages lacked log prefixes (e.g., timestamp), making them harder
> to trace and correlate with other log entries.
>
> This commit addresses the issue by introducing a custom notice receiver
> for replication, postgres_fdw, and dblink connections. These messages
> are now logged via ereport(), ensuring they appear in the logs with proper
> formatting and context, which improves clarity and aids in debugging.
Perhaps I'm wrong, but it seems to me that you also need to add the
libintl link to the Makefile of each module that uses the
libpqsrv_notice_receiver routine.
At least, without this patch, I can't build master under MacOS:
Undefined symbols for architecture x86_64:
"_libintl_gettext", referenced from:
_libpqsrv_notice_receiver in dblink.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see
invocation)
--
regards, Andrei Lepikhov
Вложения
On 2025-Jul-22, Andrei Lepikhov wrote: > Perhaps I'm wrong, but it seems to me that you also need to add the libintl > link to the Makefile of each module that uses the libpqsrv_notice_receiver > routine. That would amount to supporting translations of contrib modules, but there's actually a bunch of additional work to do if we want to do that. IMO the proper fix for this, at least for now, is to remove it: https://www.postgresql.org/message-id/202507221147.sdg2rmhbqb5z%40alvherre.pgsql -- Álvaro Herrera Breisgau, Deutschland — https://www.EnterpriseDB.com/