Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0GRC-001lAf-2C for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 10:05:10 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0GRB-008LS9-0C for pgsql-hackers@arkaria.postgresql.org; Wed, 11 Mar 2026 10:05:09 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0GRA-008LS0-23 for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2026 10:05:09 +0000 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w0GR9-00000001agb-1NQe for pgsql-hackers@lists.postgresql.org; Wed, 11 Mar 2026 10:05:08 +0000 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-7986d231b3cso12056637b3.1 for ; Wed, 11 Mar 2026 03:05:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773223506; cv=none; d=google.com; s=arc-20240605; b=AzHpi1P7RCNY2qfteW5FWzMWTXzDzDqA8fCq+0nqc/po0byX8SiDy1OfSf7jbYa/PL VUy/eQVcoaFdGYjM7FJeaWyAU7DH1cp3hPan3khG5DcEU1RgsaxV314CNLX2dy4E/cPa tqLeBnuvLQgvfOEJgC32AkA7FmQSPRh7pvx9+f1HeXOijD4nwiJTwRUPVyjH7iNUPTye nHh4hrIyocpkZaaEIrqqwgVmPhgWi0/GADtOxHJOrI/eqrTcsf6nNpFsR9+NYZ34O3VR A9GLW5dU1LfVr3f/pTZ7xASloWVL07a78k48RyZgZfvp87Nf/JTLG1oD1R1cd6/DXq3o UB6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=vJLUh6Ukb73qt0kmu4eRhyB3+e7Ck6l+OVdr98J04Qg=; fh=3umtYoUkoTKvixFJdDUXN1LmJSjdnNx9NqHcd9IkVLo=; b=YM4f73FKL2D+j8yH2w7pggCn5qyYpEWmS1n9XRYushh1x1n1edbzYa9tOtYt3MuU7T ll2XGCucNASofjzG5YUu2HnyosxrIoJRDZm3qbMhMMGyC7RUb0lhrcIy66QYZxqowuMC 2hh+xV0HY73V2ONFjyo2v99eBrnhhpHzSgWE0CYOiMHOTvRBkaY28LVgvGJCjkGYKJ9k xtGSOqGqHy1AAs1ZoXXxEeOGjzExHbntgJyqmnicTFoc+BDcdeRMIEK97pPbFIs+yr25 +uMjYS99obxUu99vckHSiyFfyDGtSDlgaZbwJPhuZaGJ5GNl2YdLyJPo0ksiQsEgWR0P dadA==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773223506; x=1773828306; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=vJLUh6Ukb73qt0kmu4eRhyB3+e7Ck6l+OVdr98J04Qg=; b=Gl0KDNgh3eeUoIl0zj+Miixx9Aqz3ksa2jurYLRFxtgfzY4orAjsph+QNEXuSHq7Na JGjmP4yJkt33sKksDl/0dq0dq9g/AnQNRcTEG+sUXHlYix2nVWG7rSv1uEyDiF8MEU83 FPa2wCbEinYeDwqgsw3SxtdgUF0t0Lj/WJbR6ALngPFjNDvWDKZslMXQiBzkHun8YuUt fbU8KZV/zY812xdE6yehrew2v16bHSnFzo0oENZTorSPIjh14pGLVukqB6kBCVpkl7nM aYLOGHKQtUBBtQR15jq0IyGyl/BONLguWdDwpIs40sGs/Mr5VuwfFufLlkjKLD8NEozd /7Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773223506; x=1773828306; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=vJLUh6Ukb73qt0kmu4eRhyB3+e7Ck6l+OVdr98J04Qg=; b=C8EjZDWfag/uzidaR2pYTNWiuN2zGu2LvenJgLNMh7S6nJXZw+93JhYccGdVB/I8EI kj8c6fSlYEjxiBxQ0oRPxyY0S405ri2Kum/zwz1Qa7+y+ueNpf4F3PA61DWJ7XoxOxzY QhEN/QS4MLQH4GHAoaF+CQHA9Ogq7Hx37CNkxzF5qw1+283agiwWnzBzuSfTUqnltdD1 py6u6cd+65X7YrmMs+pb4dPEQbEKcdKeojSiFqJXJ4DYIk02V6gngVjKrD7nVlCrgY9N 581erA3ytPHg7kNTjppE+5GLHY20bzZdHMdZ4UOZ3tAIqL+5pWITCQht4smuwPLMDrHw l2Rg== X-Forwarded-Encrypted: i=1; AJvYcCVOJ6coNPoM1WMZrFoaC6ehE9IZNi/f0U6kLwCH5PokX8n1CHQKa0XpjdfV3FQGyl5yQJzb6R/lQsIlpuL4@lists.postgresql.org X-Gm-Message-State: AOJu0Ywd/SydUoskU4w0S1t+5H2vkfhun+7QxJ3qaqMojMdrNJjTTAZP WsT82cSwZ4HlsvY7q2w+dvOTvu5lEYIjktlz96qyGRkvNja+TlgfPs0xjfaP9DSGTuNF8XJL8jK VSePDdIZKMH1fQiLWwm1gLHasUOD3pi4= X-Gm-Gg: ATEYQzzNBVDgdAE2N+1yiuZvMelKKWNVal9hIhCb2KCxUpJazo4PS73hpdqZ9gFIf+t 0HykofdI+Pnfp0Pr1aUXkdLcB7kdZ2Kfp247FY9Wxe9x/TF7OavVAvA/AF5j7H9uKasKbyw6nAG n7PZ+xLFWgtXpAAbAlw170KU45aafbjrBnonMndI3jfEgmqQ6Y+YNvOUNYfbMiZu3UjUKWOkzJo rXu1zP65Yx8PRC4Sm76pllhvPTyqhGEBzo+ohVQQ7Fc/44+40pqDC+tbZXqklW0HfvC1SDT8N/i Oy1ihG6hSYs2zbJQ9yYs4kbM8Qsk/j3se2zh0milrg== X-Received: by 2002:a05:690c:e3e9:b0:798:c633:d13b with SMTP id 00721157ae682-79917f4d52emr14972337b3.24.1773223506616; Wed, 11 Mar 2026 03:05:06 -0700 (PDT) MIME-Version: 1.0 References: <48261e54-c4f1-4bde-a4a9-4f3698a6b380@app.fastmail.com> In-Reply-To: From: vignesh C Date: Wed, 11 Mar 2026 15:34:55 +0530 X-Gm-Features: AaiRm515q5p1mnLt5lEHPaVpp1qKADIAgFsHj-nhvBApk1oXTPNxxUmFgFcME2c Message-ID: Subject: Re: [Proposal] Adding Log File Capability to pg_createsubscriber To: Gyan Sreejith Cc: Amit Kapila , Euler Taveira , "kuroda.hayato@fujitsu.com" , "pgsql-hackers@lists.postgresql.org" , Peter Smith Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, 10 Mar 2026 at 04:26, Gyan Sreejith wrote= : > > On Thu, Mar 5, 2026 at 9:49=E2=80=AFAM Euler Taveira = wrote: > >> Don't duplicate code. If you are reusing a function, my advice is to mov= e it to >> src/common. You can always use "ifdef FRONTEND" to use the appropriate l= og >> message (elog/ereport vs pg_error, for example). > > > I have made all the changes except for this one, and I am deferring to Am= it Kapila regarding the marks. Few comments: 1) You are not checking log level because of which the contents are logged irrespective of the log level: +#undef pg_log_info +#define pg_log_info(...) do{\ + if (internal_log_file_fp !=3D NULL) \ + internal_log_file_write(__VA_ARGS__); \ + else \ + pg_log_generic(PG_LOG_INFO,PG_LOG_PRIMARY,__VA_ARGS__);\ +} while(0) + +#undef pg_log_info_hint +#define pg_log_info_hint(...) do{\ + if (internal_log_file_fp !=3D NULL) \ + internal_log_file_write(__VA_ARGS__); \ + else \ + pg_log_generic(PG_LOG_INFO, PG_LOG_HINT, __VA_ARGS__);\ +} while(0) + +#undef pg_log_debug +#define pg_log_debug(...) do{\ + if (internal_log_file_fp !=3D NULL) \ + internal_log_file_write(__VA_ARGS__); \ + else \ + if (unlikely(__pg_log_level <=3D PG_LOG_DEBUG)) \ + pg_log_generic(PG_LOG_DEBUG, PG_LOG_PRIMARY, __VA_ARGS__); \ +} while(0) 2) Instead of just checking if the file is created or not, let's check for some contents from the file: +# Check that the log files were created +my @server_log_files =3D glob "$logdir/*/pg_createsubscriber_server.log"; +is( scalar(@server_log_files), 1, " + pg_createsubscriber_server.log file was created"); +my @internal_log_files =3D glob "$logdir/*/pg_createsubscriber_internal.lo= g"; +is( scalar(@internal_log_files), 1, " + pg_createsubscriber_internal.log file was created"); 3) This change is not required, let's remove this: --- a/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl +++ b/src/bin/pg_basebackup/t/040_pg_createsubscriber.pl @@ -13,7 +13,8 @@ program_help_ok('pg_createsubscriber'); program_version_ok('pg_createsubscriber'); program_options_handling_ok('pg_createsubscriber'); -my $datadir =3D PostgreSQL::Test::Utils::tempdir; +my $datadir =3D PostgreSQL::Test::Utils::tempdir + "/datadir"; 4) No need of '{' as it is a single line statement if (opt->log_dir !=3D NULL) { appendPQExpBuffer(pg_ctl_cmd, " -l %s/%s/%s.log", opt->log_dir, log_timestamp, SERVER_LOG_FILE_NAME); } Regards, Vignesh