Re: [Proposal] Adding Log File Capability to pg_createsubscriber
Amit Kapila <amit.kapila16@gmail.com>
From: Amit Kapila <amit.kapila16@gmail.com>
To: Gyan Sreejith <gyan.sreejith@gmail.com>
Cc: pgsql-hackers@lists.postgresql.org, vignesh C <vignesh21@gmail.com>
Date: 2026-01-12T08:52:24Z
Lists: pgsql-hackers
On Wed, Dec 10, 2025 at 3:47 AM Gyan Sreejith <gyan.sreejith@gmail.com> wrote: > > 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.) > I think we don't need pg_createsubscriber_resetwal.log separately as it just prints "Write-ahead log reset", it could as well be part of pg_createsubscriber_server.log. Also, I noticed that even when -l option is used, the additional LOG in verbose mode still goes to console which is difficult to parse. I fell that should also be part of .log files created by this patch. Additionally, I think it is better to use a folder with time to store as LOG files as used in pg_upgrade. This helps to distinguish log files for different runs (say in case of failures). I also thought to further split pg_createsubscriber_internal.log into publisher and subscriber specific LOGs but not sure if that is worth, so we can leave that for now. -- With Regards, Amit Kapila.
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
pg_createsubscriber: Don't use MAXPGPATH
- 99b726ac4894 19 (unreleased) landed
-
pg_createsubscriber: Remove separate logfile_open() function
- f5528b90b411 19 (unreleased) landed
-
pg_createsubscriber: Use logging.c log file callback
- 847336ba53af 19 (unreleased) landed
-
Add log file support to logging.c
- 41237556f8c5 19 (unreleased) landed
-
pg_createsubscriber: Add -l/--logdir option to redirect output to files.
- 6b5b7eae3ae6 19 (unreleased) landed
-
pg_createsubscriber: Introduce module-specific logging functions.
- d6628a5ea0a5 19 (unreleased) landed
-
Fix another buglet in archive_waldump.c.
- 69c57466a752 19 (unreleased) cited