RE: [Proposal] Adding Log File Capability to pg_createsubscriber

(unknown)

From: Kuroda, Hayato/黒田 隼人 <kuroda.hayato@fujitsu.com>
To: Kuroda, Hayato/黒田 隼人 <kuroda.hayato@fujitsu.com>, 'Amit Kapila' <amit.kapila16@gmail.com>, Gyan Sreejith <gyan.sreejith@gmail.com>
Cc: Shlok Kyal <shlok.kyal.oss@gmail.com>, vignesh C <vignesh21@gmail.com>, Euler Taveira <euler@eulerto.com>, "pgsql-hackers@lists.postgresql.org" <pgsql-hackers@lists.postgresql.org>, Peter Smith <smithpb2250@gmail.com>
Date: 2026-03-19T11:55:00Z
Lists: pgsql-hackers

Attachments

Hi,

While checking again, I found an issue in the new logging function - same va_list
is used twice, but it was the undefined behavior. va_copy() is used to fix the issue.

Also, below points were found and fixed in 0003. Thanks Peter Smith to work on.

```
+       printf(_("  -l, --logdir=LOGDIR             location for the new log directory\n"));
```

But there is a possibility that existing directory is specified, right?

```
+my $logdir = PostgreSQL::Test::Utils::tempdir + "/logdir";
```

Isn't it enough to just use tempdir here? At least, I think using "+" is not
appropriate, "." is used to connect strings.

```
+       if (opt->log_dir != NULL)
+               appendPQExpBuffer(pg_ctl_cmd, " -l %s/%s/%s.log", opt->log_dir, log_timestamp, SERVER_LOG_FILE_NAME);
```

I do not have 100% confident, but do we have to quote the logfile here?

Best regards,
Hayato Kuroda
FUJITSU LIMITED

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.

  7. Fix another buglet in archive_waldump.c.