Re: Logging problems in PostgreSQL 7.2devel

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: John Summerfield <pgtest(at)os2(dot)ami(dot)com(dot)au>
Cc: PostgreSQL Bugs <pgsql-bugs(at)postgresql(dot)org>, Peter Eisentraut <peter_e(at)gmx(dot)net>
Subject: Re: Logging problems in PostgreSQL 7.2devel
Date: 2001-09-07 21:16:47
Message-ID: 4671.999897407@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

John Summerfield <pgtest(at)os2(dot)ami(dot)com(dot)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

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Andreas Wernitznig 2001-09-07 23:14:11 backend closed the channel unexpectedly
Previous Message Tom Lane 2001-09-07 20:58:16 Re: Conditional NOTIFY is not implemented