Re: log_min_messages per backend type

Andrew Dunstan <andrew@dunslane.net>

From: Andrew Dunstan <andrew@dunslane.net>
To: Euler Taveira <euler@eulerto.com>, Alvaro Herrera <alvherre@alvh.no-ip.org>
Cc: pgsql-hackers@lists.postgresql.org
Date: 2025-03-05T16:40:55Z
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. Allow log_min_messages to be set per process type

  2. Assign "backend" type earlier during process start-up

  3. Use integer backend type when exec'ing a postmaster child

  4. Sort guc_parameters.dat alphabetically by name

  5. Create a separate file listing backend types

On 2025-03-04 Tu 7:33 PM, Euler Taveira wrote:
>> I think it should be acceptable to configure one global setting with
>> exceptions for particular backend types:
>>
>> log_min_messages = WARNING, autovacuum:DEBUG1
>>
>> Right now I think the code only accepts the unadorned log level if there
>> are no other items in the list.  I think the proposal downthread is to
>> use the keyword ALL for this,
>>
>>   log_min_messages = all:WARNING, autovacuum:DEBUG1   # I don't like this
>>
>> but I think it's inferior, because then "all" is not really "all", and I
>> think it would be different if I had said
>>
>>   log_min_messages = autovacuum:DEBUG1, all:WARNING   # I don't like this
>>
>> because it looks like the "all" entry should override the one I set for
>> autovacuum before, which frankly would not make sense to me.
>
> Good point. After reflection, I agree that "all" is not a good keyword.
> This patch turns backend type as optional so WARNING means apply this
> log level as a final step to the backend types that are not specified in
> the list.
>
>> So I think these two lines,
>>
>> log_min_messages = WARNING, autovacuum:DEBUG1
>> log_min_messages = autovacuum:DEBUG1, WARNING
>>
>> should behave identically and mean "set the level for autovacuum to
>> DEBUG1, and to any other backend type to WARNING.
>
> Done.


Just bikeshedding a bit ...

I'm not mad keen on this design. I think the value should be either a 
single setting like "WARNING" or a set of type:setting pairs. I agree 
that "all" is a bad name, but I think "default" would make sense.

I can live with it but I think this just looks a bit odd.


cheers


andrew



--
Andrew Dunstan
EDB:https://www.enterprisedb.com