Re: Logging problems in PostgreSQL 7.2devel - Mailing list pgsql-bugs

From Tom Lane
Subject Re: Logging problems in PostgreSQL 7.2devel
Date
Msg-id 4671.999897407@sss.pgh.pa.us
Whole thread Raw
In response to Logging problems in PostgreSQL 7.2devel  (John Summerfield <pgtest@os2.ami.com.au>)
Responses Re: Logging problems in PostgreSQL 7.2devel  (John Summerfield <pgtest@os2.ami.com.au>)
List pgsql-bugs
John Summerfield <pgtest@os2.ami.com.au> writes:
> I have postmaster configured to use syslog. Despite this, these messages appear on the terminal from which I start
it:
> 2001-09-03 23:44:37 [26371]  DEBUG:  recycled transaction log file 0000000000000044

Ah, I see what's causing that.  elog.c does this to decide whether to
write on stderr:

    /* write to terminal */
    if (Use_syslog <= 1 || whereToSendOutput == Debug)
        write(2, msg_buf, strlen(msg_buf));

Now, whereToSendOutput is initially Debug in a postmaster or standalone
backend, and it gets changed to Remote when a normal backend is forked
from the postmaster.  The messages that John is seeing come from routine
checkpoint subprocesses, which are also forked off from the postmaster
--- and whereToSendOutput is never changed in that path.

It strikes me that perhaps we should have whereToSendOutput start out
as None in a postmaster (but it should still be Debug in a standalone
backend or bootstrap run).

Peter, I'm cc'ing you since you've messed with elog message handling
most recently.  Do you have any thoughts about proper behavior here?

            regards, tom lane

pgsql-bugs by date:

Previous
From: Tom Lane
Date:
Subject: Re: Conditional NOTIFY is not implemented
Next
From: Andreas Wernitznig
Date:
Subject: backend closed the channel unexpectedly