Re: Truncate logs by max_log_size
Jim Jones <jim.jones@uni-muenster.de>
From: Jim Jones <jim.jones@uni-muenster.de>
To: Fujii Masao <masao.fujii@gmail.com>
Cc: Kirill Reshke <reshkekirill@gmail.com>, Álvaro Herrera <alvherre@kurilemu.de>, Fujii Masao <masao.fujii@oss.nttdata.com>, Kirill Gavrilov <diphantxm@gmail.com>, "Andrey M. Borodin" <x4mmm@yandex-team.ru>, Euler Taveira <euler@eulerto.com>, pgsql-hackers@lists.postgresql.org
Date: 2026-04-09T22:35:59Z
Lists: pgsql-hackers
Attachments
- v11-0001-Add-log_statement_max_length-GUC-to-limit-logged.patch (text/x-patch) patch v11-0001
On 09/04/2026 20:11, Fujii Masao wrote:
> +$node->append_conf('postgresql.conf', "log_statement = 'all'\n");
>
> This doesn't seem necessary, since $node->init already sets
> log_statement = 'all'.
Removed.
Most likely still leftovers from previous attempts.
> +$node->append_conf('postgresql.conf', "log_statement_max_length = 20\n");
> +$node->reload();
> +my $log_offset = -s $node->logfile;
> +$node->psql('postgres', "SELECT '123456789ABCDEF'");
>
> Would it be simpler (and cheaper) to use SET instead of reloading the
> config? For example:
>
> ---------------------------
> my $log_offset = -s $node->logfile;
> $node->psql(
> 'postgres', "
> SET log_statement_max_length TO 20;
> SELECT '123456789ABCDEF';
> ");
> ---------------------------
Done.
It's indeed much simpler this way. I replaced all append + reload
postgresql.conf calls with SET.
> +char *
> +truncate_query_log(const char *query)
>
> In elog.c, truncate_query_log() is currently placed between write_stderr() and
> vwrite_stderr(). Since those two functions are related, it might be better to
> move truncate_query_log() to a more appropriate location. Thoughts?
Agreed.
The function now lives between check_log_of_query() and
get_backend_type_for_log(), which have more semantic overlap :)
> I see the patch has been moved to CommitFest PG20-1. Once development for v20
> starts, I'd like to commit it.
Terrific. Thanks!
Best, Jim
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Fix log_statement_max_length test with verbose logs
- 9bfbf5bf6190 master landed
-
Add log_statement_max_length GUC to limit logged statement text
- c8bd8387c27a master landed
-
Improve user control over truncation of logged bind-parameter values.
- 0b34e7d307e6 13.0 cited