[jboss-svn-commits] JBoss Common SVN: r4836 - jboss-logmanager/trunk/src/main/java/org/jboss/logmanager.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Sep 1 18:03:52 EDT 2010


Author: david.lloyd at jboss.com
Date: 2010-09-01 18:03:52 -0400 (Wed, 01 Sep 2010)
New Revision: 4836

Modified:
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/ExtLogRecord.java
   jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/MDC.java
Log:
Make NDC/MDC modifiable on a log record; change MDC to use FastCopyHashMap

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/ExtLogRecord.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/ExtLogRecord.java	2010-08-30 14:45:24 UTC (rev 4835)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/ExtLogRecord.java	2010-09-01 22:03:52 UTC (rev 4836)
@@ -129,10 +129,10 @@
         }
     }
 
-    private final String ndc;
     private transient final String loggerClassName;
     private transient boolean calculateCaller = true;
 
+    private String ndc;
     private FormatStyle formatStyle = FormatStyle.MESSAGE_FORMAT;
     private Map<String, String> mdcCopy;
     private int sourceLineNumber = -1;
@@ -188,6 +188,18 @@
     }
 
     /**
+     * Change an MDC value on this record.  If the MDC has not yet been copied, this method will copy it.
+     *
+     * @param key the key to set
+     * @param value the value to set it to
+     * @return the old value, if any
+     */
+    public String putMdc(String key, String value) {
+        copyMdc();
+        return mdcCopy.put(key, value);
+    }
+
+    /**
      * Get the NDC for this log record.
      *
      * @return the NDC
@@ -197,6 +209,15 @@
     }
 
     /**
+     * Change the NDC for this log record.
+     *
+     * @param value the new NDC value
+     */
+    public void setNdc(String value) {
+        ndc = value;
+    }
+
+    /**
      * Get the class name of the logger which created this record.
      *
      * @return the class name

Modified: jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/MDC.java
===================================================================
--- jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/MDC.java	2010-08-30 14:45:24 UTC (rev 4835)
+++ jboss-logmanager/trunk/src/main/java/org/jboss/logmanager/MDC.java	2010-09-01 22:03:52 UTC (rev 4836)
@@ -22,7 +22,6 @@
 
 package org.jboss.logmanager;
 
-import java.util.HashMap;
 import java.util.Map;
 
 /**
@@ -77,7 +76,7 @@
      * @return a copy of the map
      */
     public static Map<String, String> copy() {
-        return new HashMap<String, String>(mdc.get());
+        return mdc.get().clone();
     }
 
     /**
@@ -87,14 +86,14 @@
         mdc.get().clear();
     }
 
-    private static final class Holder extends InheritableThreadLocal<Map<String, String>> {
+    private static final class Holder extends InheritableThreadLocal<FastCopyHashMap<String, String>> {
 
-        protected Map<String, String> childValue(final Map<String, String> parentValue) {
-            return new HashMap<String, String>(parentValue);
+        protected FastCopyHashMap<String, String> childValue(final Map<String, String> parentValue) {
+            return new FastCopyHashMap<String, String>(parentValue);
         }
 
-        protected Map<String, String> initialValue() {
-            return new HashMap<String, String>();
+        protected FastCopyHashMap<String, String> initialValue() {
+            return new FastCopyHashMap<String, String>();
         }
     }
 }



More information about the jboss-svn-commits mailing list