Paul,


I suggest the following format:

<log4j:event logger="org.xyz.SomeLogger" timestamp="213341234" level="INFO" thread="main">
<log4j:message><![CDATA[some message]]></log4j:message>
<log4j:mdc>
<log4j:context name="key1" value="val1"/>
<log4j:context name="key2" value="val2"/>
...
</log4j:mdc>
</log4j:event>


Note that the MDC is optional. So the DTD should allow for the possibility of no MDC.


At 10:14 PM 3/19/2003 +1100, you wrote:
Just following up on something Mark has mentioned offline re: adding some
more support for MDC through XMLLayout, and Chainsaw.  I wanted to run some
things by the group. Sorry if this is a bit long.

The first thing that needs to happen is to modify the log4j.dtd file to
incorporate the MDC structure info. I'm no XML expert, but here's my first
guess at an example format :

<log4j:MDC>
 <MDC key="MyKey1" value="MyValue2"/>
 <MDC key="MyKey2" value="MyValue2"/>
  .......
</log4j:MDC>

If anyone has any comments, speak up now! :)

After we're set on the format, it'll be (as Mark said) a snap to modify
XMLLayout to include MDC, and then I think just a fraction more effort to
modify Chainsaw's XMLFileHandler to digest(!) the MDC info back from XML
into something Chainsaw handles.

Lastly, the PatternParser class needs to provide a format for outputing ALL
the MDC key/value pairs if no extra %X option is added.  Now, since the MDC
is basically a Hashtable, would anyone object to the format of the output
via the PatternParser being just the Hashtable.toString()?.
cheers,

Paul Smith

--
Ceki



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to