On Mon, May 2, 2022 at 6:44 PM Julien Rouhaud <rjuju...@gmail.com> wrote: > > On Mon, May 02, 2022 at 06:40:05PM +0530, Bharath Rupireddy wrote: > > On Mon, May 2, 2022 at 6:32 PM Julien Rouhaud <rjuju...@gmail.com> wrote: > > > > > > Unless I'm missing something you can already do all of that with the > > > current > > > hook, since as mentioned in the comment above the hook can disable the > > > server's > > > logging: > > > > > > * Call hook before sending message to log. The hook function is > > > allowed > > > * to turn off edata->output_to_server, so we must recheck that > > > afterward. > > > > > > So you can configure your server with a very verbose log_min_message, and > > > have > > > the same setting in your own extension to disable output_to_server after > > > its > > > own processing is done. > > > > No. The emit_log_hook isn't called for all the log messages, but only > > when output_to_server = true which means, say my log_min_messages is > > 'WARNING', the hook isn't called for the messages say elevel above it > > (NOTICE, INFO, DEBUGX). > > I know. What I said you could do is configure log_min_message to DEBUGX, so > your extension sees everything you want it to see. And *in your extension* > set > output_to_server to false if the level is not the *real level* you want to > log.
I basically want to avoid normal users/developers setting any parameter (especially the superuser-only log_min_message GUC, all users might not have superuser access in production environments) or making any changes to the running server except just LOADing the server log routing/intercepting extension. Regards, Bharath Rupireddy.