mwomack 2003/03/25 22:24:56
Modified: src/java/org/apache/log4j/helpers PatternParser.java
Log:
Support for %X MDC option to print entire contents of MDC, bug #18246, changes
submitted by Paul Smith.
Revision Changes Path
1.19 +23 -0
jakarta-log4j/src/java/org/apache/log4j/helpers/PatternParser.java
Index: PatternParser.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/helpers/PatternParser.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- PatternParser.java 9 Oct 2002 22:50:03 -0000 1.18
+++ PatternParser.java 26 Mar 2003 06:24:56 -0000 1.19
@@ -16,6 +16,8 @@
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.Set;
+import java.util.Iterator;
// Contributors: Nelson Minar <([EMAIL PROTECTED]>
// Igor E. Poteryaev <[EMAIL PROTECTED]>
@@ -452,6 +454,27 @@
public
String convert(LoggingEvent event) {
+ /**
+ * if there is no additional options, we output every single
+ * Key/Value pair for the MDC in a similar format to Hashtable.toString()
+ */
+
+ if( key == null)
+ {
+ StringBuffer buf = new StringBuffer("{");
+ Set keySet = event.getMDCKeySet();
+ for (Iterator i = keySet.iterator(); i.hasNext(); ) {
+ Object item = i.next();
+ Object val = event.getMDC(item.toString());
+ buf.append("{").append(item).append(",").append(val).append("}");
+ }
+ buf.append("}");
+ return buf.toString();
+ }
+
+ /**
+ * otherwise they just want a single key output
+ */
Object val = event.getMDC(key);
if(val == null) {
return null;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]