| 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: | Whole Thread | Raw Message | 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
| 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 |