Guillaume Smet escribió:
> On 2/19/07, Alvaro Herrera <alvherre@commandprompt.com> wrote:
> >Guillaume Smet escribió:
> >> On 2/19/07, Alvaro Herrera <alvherre@commandprompt.com> wrote:
> >> >So add the session ID (%c) to log_line_prefix.
> >>
> >> It could work if log_line_prefix was added before every line but it's
> >> definitely not the case:
> >> myuser mydb 45d9d615.4abe LOG: duration : 185.223 ms, statement :
> >SELECT *
> >> FROM lieu
> >> LIMIT 10;
> >> if you execute:
> >> SELECT *
> >> FROM lieu
> >> LIMIT 10;
> >
> >Interesting. I wonder why didn't you report this as a bug before?
> >Maybe we could have discussed it and fixed it.
>
> Perhaps because I thought it was not really a bug but the intended
> behaviour.
> Syslog has the same behaviour and it's quite logical when you consider
> how queries are logged (I've spent a few hours in the logging code).
> Syslog has exactly the same behaviour but adds the necessary context
> information.
If it adds necessary context then it clear does not have "the same
behavior", because the problem is precisely that the context is missing.
I'd propose adding a log_entry_prefix separate from log_line_prefix; the
entry prefix would contain most of the stuff, and log_line_prefix would
be a minimal thing intended to be put in front of each _line_, so the
example you show above could be
myuser mydb 45d9d615.4abe LOG: duration : 185.223 ms, statement : SELECT *
45d9d615.4abe FROM lieu
45d9d615.4abe LIMIT 10;
where you have
log_entry_prefix="%d %u "
log_line_prefix="%c "
Really, prefixing with a tab does not strike me as a great idea
precisely because it's ambiguous.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support