Josh Berkus wrote:
Andrew,

The real problem is the message, which is now
from the logging code's point of view basically an opaque string.
Changing that would be a massive undertaking, especially when you think
of the effect on the translators.

Hmmm ... I don't see this as a problem. Just stick the whole message into a single XML field. This is one area where XML is easier that SQL; since it's a document format, it has no problem with a great big blob of text. "Unstructured Data" and all that nonsense.

Then whatever utility the user uses to *read* the XML can parse the message according to the user's desires. It'll still be an improvement over the current format for log digestion, since it will become easy to separate the message from the prefix and tag (which currently it's not).

The only real issue I see is the possibility of XML codes embedded in the text, but that seems minor.

well, we could either XML escape the message or put it in a CDATA block. The latter would be arguably more humanly readable.

Given that, I think we could get away with a single GUC var to govern this, log_format with possible values (to start with, at least) of 'plain' and 'xml'.

The user could just set up log_line_prefix as an XML attribute string. So we'd have something like:

<pglog level="LOG" user="andrew" dbname="blurfl">|<![CDATA[| statement: select count(*) from foo where a < b ; |]]></pglog>|


Now, what were you saying about sponsorship? ;-)

cheers

andrew

---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

              http://archives.postgresql.org

Reply via email to