]> granicus.if.org Git - postgresql/commit
Emit a log message if output is about to be redirected away from stderr.
authorTom Lane <tgl@sss.pgh.pa.us>
Tue, 13 Aug 2013 19:24:56 +0000 (15:24 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Tue, 13 Aug 2013 19:24:56 +0000 (15:24 -0400)
commit6d8186ff779fd46f0251eb252e7489fd38ab793b
treec093ba3eca212d154f15bdaba605ba55a1ba07b4
parent7cf5540c831460476d24566845422b8c81bd6581
Emit a log message if output is about to be redirected away from stderr.

We've seen multiple cases of people looking at the postmaster's original
stderr output to try to diagnose problems, not realizing/remembering that
their logging configuration is set up to send log messages somewhere else.
This seems particularly likely to happen in prepackaged distributions,
since many packagers patch the code to change the factory-standard logging
configuration to something more in line with their platform conventions.

In hopes of reducing confusion, emit a LOG message about this at the point
in startup where we are about to switch log output away from the original
stderr, providing a pointer to where to look instead.  This message will
appear as the last thing in the original stderr output.  (We might later
also try to emit such link messages when logging parameters are changed
on-the-fly; but that case seems to be both noticeably harder to do nicely,
and much less frequently a problem in practice.)

Per discussion, back-patch to 9.3 but not further.
src/backend/postmaster/postmaster.c
src/backend/postmaster/syslogger.c
src/backend/utils/error/elog.c
src/backend/utils/misc/guc.c
src/include/utils/elog.h