[jboss-svn-commits] JBoss Common SVN: r4044 - in jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager: formatters and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Feb 18 14:03:35 EST 2010


Author: david.lloyd at jboss.com
Date: 2010-02-18 14:03:35 -0500 (Thu, 18 Feb 2010)
New Revision: 4044

Modified:
   jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/NDC.java
   jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/FormatStringParser.java
   jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/Formatters.java
Log:
MFT: JBLOGGING-36 - Fix NDC formatting

Modified: jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/NDC.java
===================================================================
--- jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/NDC.java	2010-02-18 19:03:21 UTC (rev 4043)
+++ jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/NDC.java	2010-02-18 19:03:35 UTC (rev 4044)
@@ -99,7 +99,7 @@
         if (stack.isEmpty()) {
             return "";
         } else {
-            return stack.top();
+            return stack.toString();
         }
     }
 
@@ -152,5 +152,17 @@
                 this.sp = max;
             }
         }
+
+        public String toString() {
+            final StringBuilder b = new StringBuilder();
+            final int sp = this.sp;
+            for (int i = 0; i < sp; i++) {
+                b.append(data[i]);
+                if (i < sp) {
+                    b.append('.');
+                }
+            }
+            return b.toString();
+        }
     }
 }

Modified: jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/FormatStringParser.java
===================================================================
--- jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/FormatStringParser.java	2010-02-18 19:03:21 UTC (rev 4043)
+++ jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/FormatStringParser.java	2010-02-18 19:03:35 UTC (rev 4044)
@@ -128,7 +128,8 @@
                         break;
                     }
                     case 'x': {
-                        stepList.add(Formatters.ndcFormatStep(leftJustify, minimumWidth, maximumWidth));
+                        final int count = argument == null ? 0 : Integer.parseInt(argument);
+                        stepList.add(Formatters.ndcFormatStep(leftJustify, minimumWidth, maximumWidth, count));
                         break;
                     }
                     case 'X': {

Modified: jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/Formatters.java
===================================================================
--- jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/Formatters.java	2010-02-18 19:03:21 UTC (rev 4043)
+++ jboss-logmanager/branches/1.1/src/main/java/org/jboss/logmanager/formatters/Formatters.java	2010-02-18 19:03:35 UTC (rev 4044)
@@ -36,6 +36,7 @@
 import static java.lang.Math.min;
 import static java.lang.Math.max;
 import java.io.PrintWriter;
+import org.jboss.logmanager.NDC;
 
 /**
  * Formatter utility methods.
@@ -456,12 +457,22 @@
      * @return the format step
      */
     public static FormatStep ndcFormatStep(final boolean leftJustify, final int minimumWidth, final int maximumWidth) {
-        return new JustifyingFormatStep(leftJustify, minimumWidth, maximumWidth) {
-            public void renderRaw(final StringBuilder builder, final ExtLogRecord record) {
-                final String value = record.getNdc();
-                if (value != null) {
-                    builder.append(value);
-                }
+        return ndcFormatStep(leftJustify, minimumWidth, maximumWidth, 0);
+    }
+
+    /**
+     * Create a format step which emits the NDC value of the log record.
+     *
+     * @param leftJustify {@code true} to left justify, {@code false} to right justify
+     * @param minimumWidth the minimum field width, or 0 for none
+     * @param maximumWidth the maximum field width (must be greater than {@code minimumFieldWidth}), or 0 for none
+     * @param count the limit to the number of segments to format
+     * @return the format step
+     */
+    public static FormatStep ndcFormatStep(final boolean leftJustify, final int minimumWidth, final int maximumWidth, final int count) {
+        return new SegmentedFormatStep(leftJustify, minimumWidth, maximumWidth, count) {
+            public String getSegmentedSubject(final ExtLogRecord record) {
+                return NDC.get();
             }
         };
     }



More information about the jboss-svn-commits mailing list