Thread: fate of pg_logger (was Re: [PATCHES] [pgsql-hackers-win32] Contrib modules on Win32)

"Dave Page" <dpage@vale-housing.co.uk> writes:
>>> [ in list of contrib modules that don't build on Windows ]
>>> pg_logger

>> deprecated; use redirect_stderr (BTW, is it default on win32 now?)

> Yes, it's the default on Win32 (installer releases anyhoo). I take it
> this should be removed from /contrib then.

I looked into this a little.  pg_logger isn't directly replaced by the
redirect_stderr code, because it actually redirects stderr to syslog,
not straight into files.  It's reasonable that someone would want this
facility instead of elog.c's built-in support for syslog.  The original
motivation for the contrib module can be found in this thread:
  http://archives.postgresql.org/pgsql-hackers/2001-02/msg00295.php
where it was pointed out that backends sometimes emit messages to stderr
without going through elog(), and so the elog-based redirection to
syslog isn't very reliable.

That argument is a lot weaker than it was at the time, mainly because we
already waged the "holy war on stdout/stderr messages in the backend"
that I didn't want to get into in the above-cited message; we did so to
support localization and SQLSTATE codes for error messages.  There are
still a very few stderr prints in the backend, but AFAIK they are all
developer-only debug support.  The case of useful messages from dynamic
linker failures is the only argument that I think still has much weight,
and you could easily classify that one as a developer-only issue, too.

In any case, given the 8.0 code base, pg_logger makes no sense.
If you wanted the facility, what you'd do is put an additional option
into postmaster/syslogger.c to send captured output to syslog instead
of files.  That way you would have a logger that would be automatically
launched by the postmaster --- ergo, no need to tweak init scripts ---
and what's more would be re-launched by the postmaster should it chance
to die.

So I don't see any value in putting any work into contrib/pg_logger to
make it build (or suppress it from building) on Windows.  If I don't
hear a squawk PDQ, I'll remove the contrib module.

            regards, tom lane