Andrew Dunstan wrote:
Alvaro Herrera wrote:
Andrew Dunstan wrote:
The attached patch makes a very small but useful change to the
behaviour of log_line_prefix, by enabling the start time (%s) and
cookie (%c) logging to occur for all backends rather than just for
session processes (i.e. backends started for a client connection).
We actually need almost all of this patch, with or without the
change in behaviour, so we can put the cookie in CSVlogs (which I'm
still working on), since the cookie+line number make the natural
primary key for the logs. The actual change in behaviour from this
patch comes from the removal of 2 "if (MyProcPort)" lines in elog.c.
Given that, can I sneak this in or should I wait for 8.4 given we're
long past feature freeze?
Thinking again about the feature itself I wonder if it actually makes
sense -- maybe it does make sense to be able to display the session ID,
but the start time? Why would anyone care about the start time of
syslogger or bgwriter? We don't even have a use for the "hey, this
process was started" log line, why would anyone care about having the
start time in the log line prefix?
Actually having the cookie in all processes is another matter, as far as
it's useful for CSV logs. But then, is it? Maybe the auxiliary
processes should identify themselves with fixed cookies or something
particular that lets one distinguish, say, a bgwriter from a syslogger,
but is there a case from distinguishing one bgwriter from another?
It's not about distinguishing one bgwriter from another, it's about
distinguishing it from any other process at any time whatsoever that
has had the same pid. cookie+linenumber should be unique.
pid+linenumber isn't. (And every process gets its own line number
sequence, so we can't just give, say, all the bgwriter processes the
same cookie). Logging the start time on its own isn't much extra
benefit, although I expect log parsers will find it nicer to be able
to handle a more consistent logging style rather than having to handle
non-session processes as a special case. But having the cookie
available in all cases is the whole point of this - I wouldn't have
done it unless I had needed to be able to set a primary key for
loadable logs.
If you want to invent some other style of cookie we can look at that.
Back when we looked at it originally nobody came up with a better
suggestion than process_start.pid. But that surely would be for a
later release ;-)
So, short answer - yes, I think it makes sense. But if there's any
serious argument I won't change the observable behaviour in elog.c,
just the infrastructure.
In the absence of further discussion I have committed this.
That clears the decks for me to have yet another go at CSVlogs ;-)
cheers
andrew
---------------------------(end of broadcast)---------------------------
TIP 1: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to [EMAIL PROTECTED] so that your
message can get through to the mailing list cleanly