Re: [Proposal] Adding Log File Capability to pg_createsubscriber

Gyan Sreejith <gyan.sreejith@gmail.com>

From: Gyan Sreejith <gyan.sreejith@gmail.com>
To: Peter Smith <smithpb2250@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org, vignesh C <vignesh21@gmail.com>
Date: 2025-12-14T15:47:36Z
Lists: pgsql-hackers

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. pg_createsubscriber: Don't use MAXPGPATH

  2. pg_createsubscriber: Remove separate logfile_open() function

  3. pg_createsubscriber: Use logging.c log file callback

  4. Add log file support to logging.c

  5. pg_createsubscriber: Add -l/--logdir option to redirect output to files.

  6. pg_createsubscriber: Introduce module-specific logging functions.

Attachments

I have included the patch file after making the changes to the SGML docs.

Thanks for your help,
Gyan Sreejith

On Thu, Dec 11, 2025 at 8:33 PM Gyan Sreejith <gyan.sreejith@gmail.com>
wrote:

> Thanks for the feedback, Peter.
>
> I am currently working on the SGML docs update, and will promptly get back
> with an update.
>
> For your second point, currently, all output goes directly to the console.
> I thought it made more sense to break it up into multiple files depending
> on what was being invoked. Do you have another opinion?
>
> Thank you once again,
> Gyan Sreejith
>
> On Thu, Dec 11, 2025 at 2:29 AM Peter Smith <smithpb2250@gmail.com> wrote:
>
>> On Wed, Dec 10, 2025 at 9:17 AM Gyan Sreejith <gyan.sreejith@gmail.com>
>> wrote:
>> >
>> > Background:
>> >
>> > pg_createsubscriber currently outputs all messages (internal validation
>> messages, standby server start/stop logs, recovery progress output, and
>> output from utilities) directly to the console. As a result, users may find
>> debugging and handling errors difficult. It would be more convenient if
>> messages were separated and stored in different log files. There is already
>> a similar implementation in pg_upgrade.
>> >
>> > Proposed Solution:
>> >
>> > Based on issues mentioned previously, I would like to propose a new
>> argument -l <logdir> which can be specified for pg_createsubscriber. Using
>> it would create the following log files:
>> >
>> > logdir/pg_createsubscriber_server.log which captures all logs related
>> to starting and stopping the standby server.
>> >
>> > logdir/pg_createsubscriber_resetwal.log which captures the output of
>> pg_resetwal
>> >
>> > logdir/pg_createsubscriber_internal.log which captures internal
>> diagnostic output from pg_createsubscriber (validations, checks, etc.)
>> >
>> > Overall, this proposed solution could make the pg_createsubscriber
>> command output messages more organized. The command would be easier to use
>> as users will only have to read individual log files rather than parse
>> through lots of possibly irrelevant output messages. I have attached the
>> patch for this change.
>> >
>> > Special thanks to Vignesh C. for his offlist guidance on this project.
>> >
>> >
>> > Regards, Gyan Sreejith
>> >
>>
>> Hi Gyan.
>>
>> I haven't yet looked at this patch in any detail, but here are some
>> quick comments:
>>
>> ======
>>
>> 1.
>> + printf(_("  -l, --logdir=LOGDIR             location for the new log
>> directory\n"));
>>
>> The patch is missing SGML docs updates for pg_createsubscriber new
>> option, and any explanation of the split of logfiles.
>>
>> 2.
>> I might be mistaken, but IIUC it seems the splitting of the logfile
>> only works when --logdir is specified. Is that correct?
>> Why should --logdir have any side-effect other than assigning the log
>> destination folder?
>>
>> ======
>> Kind Regards,
>> Peter Smith.
>> Fujitsu Australia
>>
>