Re: Frontend error logging style

Peter Eisentraut <peter.eisentraut@enterprisedb.com>

From: Peter Eisentraut <peter.eisentraut@enterprisedb.com>
To: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers@lists.postgresql.org
Date: 2021-11-15T19:08:19Z
Lists: pgsql-hackers
On 09.11.21 23:20, Tom Lane wrote:
> 2. What is the preferred style for adding extra lines to log messages?
> I see a lot of direct prints to stderr:
> 
> 		pg_log_error("missing required argument: database name");
> 		fprintf(stderr, _("Try \"%s --help\" for more information.\n"), progname);
> 		exit(1);

This is mainly used for those few messages that are sort of a "global 
standard".

> but a number of places have chosen to do this:
> 
> 		pg_log_error("query failed: %s", PQerrorMessage(conn));
> 		pg_log_error("query was: %s", todo);
> 
> and some places got creative and did this:
> 
> 		pg_log_error("query failed: %s", PQerrorMessage(conn));
> 		pg_log_info("query was: %s", sql.data);

I can't decide between those two.  It depends on how each program 
handles the log level internally.

Some kind of "detail" system could be useful.  But it would need to be 
tied into the log level, layout, etc.  I have not seen much inspiration 
for this kind of thing in other logging libraries, so I didn't do 
anything about it yet.



Commits

  1. logging: Also add the command prefix to detail and hint messages

  2. Remove not-very-useful early checks of __pg_log_level in logging.h.

  3. Improve frontend error logging style.

  4. Apply PGDLLIMPORT markings broadly.