You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-dev@logging.apache.org by ca...@apache.org on 2007/04/25 17:08:16 UTC

svn commit: r532381 - in /logging/sandbox/log4j/pattern-layout: ./ src/main/java/org/apache/log4j/ src/main/java/org/apache/log4j/helpers/ src/main/java/org/apache/log4j/pattern/ src/test/java/org/apache/log4j/ src/test/java/org/apache/log4j/pattern/ s...

Author: carnold
Date: Wed Apr 25 08:08:13 2007
New Revision: 532381

URL: http://svn.apache.org/viewvc?view=rev&rev=532381
Log:
Bug 42121: log4j 1.2-ify PatternLayout

Added:
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LogEvent.java
      - copied, changed from r532365, logging/log4j/branches/v1_2-branch/src/java/org/apache/log4j/spi/LoggingEvent.java
    logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/MDCOrderFilter.java
Modified:
    logging/sandbox/log4j/pattern-layout/   (props changed)
    logging/sandbox/log4j/pattern-layout/build.xml
    logging/sandbox/log4j/pattern-layout/pom.xml
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/PatternLayout.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/helpers/PatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternParser.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ClassNamePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/DatePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileDatePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileLocationPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FullLocationPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/IntegerPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LevelPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineLocationPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineSeparatorPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LoggerPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MessagePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MethodLocationPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/NDCPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PatternParser.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PropertiesPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/SequenceNumberPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThreadPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThrowableInformationPatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/PatternLayoutTestCase.java
    logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/Num343PatternConverter.java
    logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/PatternParserTest.java
    logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/JunitTestRunnerFilter.java

Propchange: logging/sandbox/log4j/pattern-layout/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Wed Apr 25 08:08:13 2007
@@ -1 +1,5 @@
 target
+output
+apache-log4j-pattern-layout*
+surefire*
+cobertura.ser

Modified: logging/sandbox/log4j/pattern-layout/build.xml
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/build.xml?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/build.xml (original)
+++ logging/sandbox/log4j/pattern-layout/build.xml Wed Apr 25 08:08:13 2007
@@ -38,12 +38,16 @@
 	<!--  Versions for dependencies   -->
     <property name="log4j.version" value="1.3alpha8"/>
     <property name="junit.version" value="3.8.1"/>
+    <property name="oro.version" value="2.0.8"/>
 	
 	<!--  Dependency locations - assumed to be in Maven 2 repository   -->
     <property name="junit.jar" 
        location="${m2_repo}/junit/junit/${junit.version}/junit-${junit.version}.jar"/>
     <property name="log4j.jar" 
        location="${m2_repo}/log4j/log4j/${log4j.version}/log4j-${log4j.version}.jar"/>
+    <property name="oro.jar" 
+       location="${m2_repo}/oro/oro/${oro.version}/oro-${oro.version}.jar"/>
+       
 
     <!--   Java compiler settings   -->
     <property name="javac.source" value="1.3"/>
@@ -97,7 +101,7 @@
     	   debug="${javac.debug}"
     	   target="${javac.target}"
     	   source="${javac.source}"
-    	   classpath="${log4j.jar}:${junit.jar}:target/classes"/>
+    	   classpath="${log4j.jar}:${junit.jar}:target/classes:${oro.jar}"/>
     	<copy todir="target/test-classes">
     		<fileset dir="src/test/resources"/>
     	</copy>
@@ -106,7 +110,7 @@
 
     <target name="test" depends="test-compile" description="Run unit tests">
     	<junit printsummary="yes">
-    	    <classpath path="target/test-classes:target/classes:${log4j.jar}"/>
+    	    <classpath path="target/test-classes:target/classes:${log4j.jar}:${oro.jar}"/>
     		<batchtest>
     			<fileset dir="src/test/java/">
     				<include name="**/*TestCase.java"/>

Modified: logging/sandbox/log4j/pattern-layout/pom.xml
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/pom.xml?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/pom.xml (original)
+++ logging/sandbox/log4j/pattern-layout/pom.xml Wed Apr 25 08:08:13 2007
@@ -124,7 +124,7 @@
     <dependency>
       <groupId>log4j</groupId>
       <artifactId>log4j</artifactId>
-      <version>1.3alpha8</version>
+      <version>1.2.14</version>
     </dependency>    
 	<dependency>
       <groupId>oro</groupId>

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/PatternLayout.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/PatternLayout.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/PatternLayout.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/PatternLayout.java Wed Apr 25 08:08:13 2007
@@ -507,8 +507,7 @@
       @since 0.9.0
     */
     protected org.apache.log4j.helpers.PatternParser createPatternParser(String pattern) {
-      return new org.apache.log4j.pattern.BridgePatternParser(pattern,
-              repository, getLogger());
+      return new org.apache.log4j.pattern.BridgePatternParser(pattern);
     }
 
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/helpers/PatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/helpers/PatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/helpers/PatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/helpers/PatternConverter.java Wed Apr 25 08:08:13 2007
@@ -1,12 +1,12 @@
 /*
  * Copyright 1999-2005 The Apache Software Foundation.
- * 
+ *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -17,9 +17,8 @@
 package org.apache.log4j.pattern;
 
 import org.apache.log4j.PatternLayout;
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggerRepository;
-import org.apache.log4j.spi.LoggerRepositoryEx;
 import org.apache.log4j.spi.LoggingEvent;
 
 import java.util.ArrayList;
@@ -57,12 +56,9 @@
   /**
    * Create a new instance.
    * @param pattern pattern, may not be null.
-   * @param repository logger repository, may be null.
-   * @param logger logger for internal logging.
    */
   public BridgePatternConverter(
-    final String pattern, final LoggerRepository repository,
-    final ULogger logger) {
+    final String pattern) {
     next = null;
     handlesExceptions = false;
 
@@ -70,15 +66,9 @@
     List fields = new ArrayList();
     Map converterRegistry = null;
 
-    if (repository instanceof LoggerRepositoryEx) {
-      converterRegistry =
-        (Map) ((LoggerRepositoryEx) repository).getObject(
-          PatternLayout.PATTERN_RULE_REGISTRY);
-    }
-
     PatternParser.parse(
       pattern, converters, fields, converterRegistry,
-      PatternParser.getPatternLayoutRules(), logger);
+      PatternParser.getPatternLayoutRules());
 
     patternConverters = new LoggingEventPatternConverter[converters.size()];
     patternFields = new FormattingInfo[converters.size()];

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternParser.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternParser.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternParser.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/BridgePatternParser.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggerRepository;
 
 
@@ -31,28 +31,15 @@
  */
 public final class BridgePatternParser
   extends org.apache.log4j.helpers.PatternParser {
-  /**
-   * Logger repository.
-   */
-  private final LoggerRepository repository;
 
-  /**
-   * Internal logger.
-   */
-  private final ULogger logger;
 
   /**
    * Create a new instance.
    * @param conversionPattern pattern, may not be null.
-   * @param repository repository, may be null.
-   * @param logger internal logger, may be null.
    */
   public BridgePatternParser(
-    final String conversionPattern, final LoggerRepository repository,
-    final ULogger logger) {
+    final String conversionPattern) {
     super(conversionPattern);
-    this.repository = repository;
-    this.logger = logger;
   }
 
   /**
@@ -60,6 +47,6 @@
    * @return pattern converter.
    */
   public org.apache.log4j.helpers.PatternConverter parse() {
-    return new BridgePatternConverter(pattern, repository, logger);
+    return new BridgePatternConverter(pattern);
   }
 }

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ClassNamePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ClassNamePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ClassNamePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ClassNamePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
 
@@ -31,22 +31,20 @@
   /**
    * Private constructor.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    */
   private ClassNamePatternConverter(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     super("Class Name", "class name", options);
   }
 
   /**
    * Gets an instance of ClassNamePatternConverter.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    * @return instance of pattern converter.
    */
   public static ClassNamePatternConverter newInstance(
-    final String[] options, final ULogger logger) {
-    return new ClassNamePatternConverter(options, logger);
+    final String[] options) {
+    return new ClassNamePatternConverter(options);
   }
 
   /**

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/DatePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/DatePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/DatePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/DatePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,8 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
-import org.apache.log4j.helpers.Constants;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 import java.text.SimpleDateFormat;
@@ -33,6 +32,33 @@
  * @since 1.3
  */
 public final class DatePatternConverter extends LoggingEventPatternConverter {
+    /**
+     * ABSOLUTE string literal.
+     */
+  private static final String ABSOLUTE_FORMAT = "ABSOLUTE";
+    /**
+     * SimpleTimePattern for ABSOLUTE.
+     */
+  private static final String ABSOLUTE_TIME_PATTERN = "HH:mm:ss,SSS";
+
+
+    /**
+     * DATE string literal.
+     */
+  private static final String DATE_AND_TIME_FORMAT = "DATE";
+    /**
+     * SimpleTimePattern for DATE.
+     */
+  private static final String DATE_AND_TIME_PATTERN = "dd MMM yyyy HH:mm:ss,SSS";
+
+    /**
+     * ISO8601 string literal.
+     */
+  private static final String ISO8601_FORMAT = "ISO8601";
+    /**
+     * SimpleTimePattern for ISO8601.
+     */
+  private static final String ISO8601_PATTERN = "yyyy-MM-dd HH:mm:ss,SSS";
   /**
    * Date format.
    */
@@ -41,9 +67,8 @@
   /**
    * Private constructor.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    */
-  private DatePatternConverter(final String[] options, final ULogger logger) {
+  private DatePatternConverter(final String[] options) {
     super("Date", "date");
 
     String patternOption;
@@ -60,12 +85,12 @@
 
     if (
       (patternOption == null)
-        || patternOption.equalsIgnoreCase(Constants.ISO8601_FORMAT)) {
-      pattern = Constants.ISO8601_PATTERN;
-    } else if (patternOption.equalsIgnoreCase(Constants.ABSOLUTE_FORMAT)) {
-      pattern = Constants.ABSOLUTE_TIME_PATTERN;
-    } else if (patternOption.equalsIgnoreCase(Constants.DATE_AND_TIME_FORMAT)) {
-      pattern = Constants.DATE_AND_TIME_PATTERN;
+        || patternOption.equalsIgnoreCase(ISO8601_FORMAT)) {
+      pattern = ISO8601_PATTERN;
+    } else if (patternOption.equalsIgnoreCase(ABSOLUTE_FORMAT)) {
+      pattern = ABSOLUTE_TIME_PATTERN;
+    } else if (patternOption.equalsIgnoreCase(DATE_AND_TIME_FORMAT)) {
+      pattern = DATE_AND_TIME_PATTERN;
     } else {
       pattern = patternOption;
     }
@@ -77,14 +102,12 @@
       simpleFormat = new SimpleDateFormat(pattern);
       maximumCacheValidity = CachedDateFormat.getMaximumCacheValidity(pattern);
     } catch (IllegalArgumentException e) {
-      if (logger != null) {
-        logger.warn(
+        LogLog.warn(
           "Could not instantiate SimpleDateFormat with pattern "
           + patternOption, e);
-      }
 
       // default to the ISO8601 format
-      simpleFormat = new SimpleDateFormat(Constants.ISO8601_PATTERN);
+      simpleFormat = new SimpleDateFormat(ISO8601_PATTERN);
     }
 
     // if the option list contains a TZ option, then set it.
@@ -99,12 +122,11 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static DatePatternConverter newInstance(
-    final String[] options, final ULogger logger) {
-    return new DatePatternConverter(options, logger);
+    final String[] options) {
+    return new DatePatternConverter(options);
   }
 
   /**
@@ -112,7 +134,7 @@
    */
   public void format(final LoggingEvent event, final StringBuffer output) {
     synchronized(this) {
-    	df.format(event.getTimeStamp(), output);
+    	df.format(event.timeStamp, output);
     }
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileDatePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileDatePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileDatePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileDatePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 
 
 /**
@@ -37,16 +37,17 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static PatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     if ((options == null) || (options.length == 0)) {
       return DatePatternConverter.newInstance(
-        new String[] { "yyyy-MM-dd" }, logger);
+        new String[] {
+                "yyyy-MM-dd"
+        });
     }
 
-    return DatePatternConverter.newInstance(options, logger);
+    return DatePatternConverter.newInstance(options);
   }
 }

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileLocationPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileLocationPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileLocationPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FileLocationPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
 
@@ -45,11 +45,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static FileLocationPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FullLocationPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FullLocationPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FullLocationPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/FullLocationPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
 
@@ -45,11 +45,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static FullLocationPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 
@@ -60,7 +59,7 @@
     LocationInfo locationInfo = event.getLocationInformation();
 
     if (locationInfo != null) {
-      output.append(locationInfo.getFullInfo());
+      output.append(locationInfo.fullInfo);
     }
   }
 }

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/IntegerPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/IntegerPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/IntegerPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/IntegerPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 
 import java.util.Date;
 
@@ -44,11 +44,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static IntegerPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LevelPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LevelPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LevelPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LevelPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -17,7 +17,7 @@
 package org.apache.log4j.pattern;
 
 import org.apache.log4j.Level;
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -44,11 +44,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static LevelPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineLocationPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineLocationPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineLocationPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineLocationPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
 
@@ -45,11 +45,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static LineLocationPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineSeparatorPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineSeparatorPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineSeparatorPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LineSeparatorPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -17,7 +17,7 @@
 package org.apache.log4j.pattern;
 
 import org.apache.log4j.Layout;
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -51,11 +51,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static LineSeparatorPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Copied: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LogEvent.java (from r532365, logging/log4j/branches/v1_2-branch/src/java/org/apache/log4j/spi/LoggingEvent.java)
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LogEvent.java?view=diff&rev=532381&p1=logging/log4j/branches/v1_2-branch/src/java/org/apache/log4j/spi/LoggingEvent.java&r1=532365&p2=logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LogEvent.java&r2=532381
==============================================================================
--- logging/log4j/branches/v1_2-branch/src/java/org/apache/log4j/spi/LoggingEvent.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LogEvent.java Wed Apr 25 08:08:13 2007
@@ -15,38 +15,44 @@
  * limitations under the License.
  */
 
-package org.apache.log4j.spi;
+package org.apache.log4j.pattern;
 
-import org.apache.log4j.*;
-
-import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.Category;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.MDC;
+import org.apache.log4j.NDC;
+import org.apache.log4j.Priority;
 import org.apache.log4j.helpers.Loader;
-import java.lang.reflect.Method;
-import java.io.ObjectOutputStream;
+import org.apache.log4j.helpers.LogLog;
+import org.apache.log4j.spi.LocationInfo;
+import org.apache.log4j.spi.LoggerRepository;
+import org.apache.log4j.spi.RendererSupport;
+import org.apache.log4j.spi.ThrowableInformation;
+
 import java.io.ObjectInputStream;
-import java.util.Hashtable;
-import java.util.Set;
+import java.io.ObjectOutputStream;
+import java.lang.reflect.Method;
 import java.util.Collections;
-import java.util.Map;
 import java.util.HashMap;
+import java.util.Hashtable;
+import java.util.Map;
+import java.util.Set;
 
 // Contributors:   Nelson Minar <ne...@monkey.org>
 //                 Wolf Siberski
 //                 Anders Kristensen <ak...@dynamicsoft.com>
 
 /**
-   The internal representation of logging events. When an affirmative
-   decision is made to log then a <code>LoggingEvent</code> instance
-   is created. This instance is passed around to the different log4j
-   components.
-
-   <p>This class is of concern to those wishing to extend log4j.
-
-   @author Ceki G&uuml;lc&uuml;
-   @author James P. Cakalic
-
-   @since 0.8.2 */
-public class LoggingEvent implements java.io.Serializable {
+ * This class is a copy of o.a.l.spi.LoggingEvent from
+ * log4j 1.2.15 which has been renamed to keep
+ * the same overall class name length to allow a
+ * serialization written with a prior instance of o.a.l.spi.LoggingEvent
+ * to be deserialized with this class just by mangling the class name
+ * in the byte stream.
+ *
+ */
+public class LogEvent implements java.io.Serializable {
 
   private static long startTime = System.currentTimeMillis();
 
@@ -148,7 +154,7 @@
      @param level The level of this event.
      @param message  The message of this event.
      @param throwable The throwable of this event.  */
-  public LoggingEvent(String fqnOfCategoryClass, Category logger,
+  public LogEvent(String fqnOfCategoryClass, Category logger,
 		      Priority level, Object message, Throwable throwable) {
     this.fqnOfCategoryClass = fqnOfCategoryClass;
     this.logger = logger;
@@ -172,7 +178,7 @@
      @param level The level of this event.
      @param message  The message of this event.
      @param throwable The throwable of this event.  */
-  public LoggingEvent(String fqnOfCategoryClass, Category logger,
+  public LogEvent(String fqnOfCategoryClass, Category logger,
 		      long timeStamp, Priority level, Object message,
 		      Throwable throwable) {
     this.fqnOfCategoryClass = fqnOfCategoryClass;
@@ -202,7 +208,7 @@
        @param info Location info
        @param properties MDC properties
      */
-    public LoggingEvent(final String fqnOfCategoryClass,
+    public LogEvent(final String fqnOfCategoryClass,
                         final Logger logger,
                         final long timeStamp,
                         final Level level,

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LoggerPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LoggerPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LoggerPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/LoggerPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -32,30 +32,28 @@
    * Singleton.
    */
   private static final LoggerPatternConverter INSTANCE =
-    new LoggerPatternConverter(null, null);
+    new LoggerPatternConverter(null);
 
   /**
    * Private constructor.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    */
-  private LoggerPatternConverter(final String[] options, final ULogger logger) {
+  private LoggerPatternConverter(final String[] options) {
     super("Logger", "logger", options);
   }
 
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static LoggerPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     if ((options == null) || (options.length == 0)) {
       return INSTANCE;
     }
 
-    return new LoggerPatternConverter(options, logger);
+    return new LoggerPatternConverter(options);
   }
 
   /**

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MessagePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MessagePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MessagePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MessagePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -43,11 +43,10 @@
   /**
    * Obtains an instance of pattern converter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of pattern converter.
    */
   public static MessagePatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MethodLocationPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MethodLocationPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MethodLocationPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/MethodLocationPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.LocationInfo;
 
@@ -45,11 +45,10 @@
   /**
    * Obtains an instance of MethodLocationPatternConverter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of MethodLocationPatternConverter.
    */
   public static MethodLocationPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/NDCPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/NDCPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/NDCPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/NDCPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -43,11 +43,10 @@
   /**
    * Obtains an instance of NDCPatternConverter.
    * @param options options, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of NDCPatternConverter.
    */
   public static NDCPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PatternParser.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PatternParser.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PatternParser.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PatternParser.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.helpers.Loader;
 
 import java.lang.reflect.Method;
@@ -242,12 +242,10 @@
    * @param formattingInfos list to receive field specifiers corresponding to pattern converters.
    * @param converterRegistry map of user-supported pattern converters keyed by format specifier, may be null.
    * @param rules map of stock pattern converters keyed by format specifier.
-   * @param logger logger to receive parser warnings, may be null.
    */
   public static void parse(
     final String pattern, final List patternConverters,
-    final List formattingInfos, final Map converterRegistry, final Map rules,
-    final ULogger logger) {
+    final List formattingInfos, final Map converterRegistry, final Map rules) {
     if (pattern == null) {
       throw new NullPointerException("pattern");
     }
@@ -328,7 +326,7 @@
             state = MIN_STATE;
           } else {
             i = finalizeConverter(
-                c, pattern, i, logger, currentLiteral, formattingInfo,
+                c, pattern, i, currentLiteral, formattingInfo,
                 converterRegistry, rules, patternConverters, formattingInfos);
 
             // Next pattern is assumed to be a literal.
@@ -353,7 +351,7 @@
           state = DOT_STATE;
         } else {
           i = finalizeConverter(
-              c, pattern, i, logger, currentLiteral, formattingInfo,
+              c, pattern, i, currentLiteral, formattingInfo,
               converterRegistry, rules, patternConverters, formattingInfos);
           state = LITERAL_STATE;
           formattingInfo = FormattingInfo.getDefault();
@@ -372,11 +370,9 @@
               c - '0');
           state = MAX_STATE;
         } else {
-          if (logger != null) {
-            logger.error(
+            LogLog.error(
               "Error occured in position " + i
               + ".\n Was expecting digit, instead got char \"" + c + "\".");
-          }
 
           state = LITERAL_STATE;
         }
@@ -393,7 +389,7 @@
               (formattingInfo.getMaxLength() * 10) + (c - '0'));
         } else {
           i = finalizeConverter(
-              c, pattern, i, logger, currentLiteral, formattingInfo,
+              c, pattern, i, currentLiteral, formattingInfo,
               converterRegistry, rules, patternConverters, formattingInfos);
           state = LITERAL_STATE;
           formattingInfo = FormattingInfo.getDefault();
@@ -421,14 +417,12 @@
    *    if converterId contains extra characters.
    * @param converterRegistry map of user-supported pattern converters keyed by format specifier, may be null.
    * @param rules map of stock pattern converters keyed by format specifier.
-   * @param logger logger to receive parser warnings, may be null.
    * @param options converter options.
    * @return  converter or null.
    */
   private static PatternConverter createConverter(
     final String converterId, final StringBuffer currentLiteral,
-    final Map converterRegistry, final Map rules, final List options,
-    final ULogger logger) {
+    final Map converterRegistry, final Map rules, final List options) {
     String converterName = converterId;
     Object converterObj = null;
 
@@ -446,9 +440,7 @@
     }
 
     if (converterObj == null) {
-      if (logger != null) {
-        logger.error("Unrecognized format specifier [{}]", converterId);
-      }
+        LogLog.error("Unrecognized format specifier [" + converterId + "]");
 
       return null;
     }
@@ -462,19 +454,15 @@
         try {
           converterClass = Loader.loadClass((String) converterObj);
         } catch (ClassNotFoundException ex) {
-          if (logger != null) {
-            logger.warn(
+            LogLog.warn(
               "Class for conversion pattern %" + converterName + " not found",
               ex);
-          }
 
           return null;
         }
       } else {
-        if (logger != null) {
-          logger.warn(
-            "Bad map entry for conversion pattern %{}.", converterName);
-        }
+          LogLog.warn(
+            "Bad map entry for conversion pattern %" +  converterName + ".");
 
         return null;
       }
@@ -485,14 +473,13 @@
         converterClass.getMethod(
           "newInstance",
           new Class[] {
-            Class.forName("[Ljava.lang.String;"),
-            org.apache.log4j.ULogger.class
+            Class.forName("[Ljava.lang.String;")
           });
       String[] optionsArray = new String[options.size()];
       optionsArray = (String[]) options.toArray(optionsArray);
 
       Object newObj =
-        factory.invoke(null, new Object[] { optionsArray, logger });
+        factory.invoke(null, new Object[] { optionsArray });
 
       if (newObj instanceof PatternConverter) {
         currentLiteral.delete(
@@ -502,16 +489,12 @@
 
         return (PatternConverter) newObj;
       } else {
-        if (logger != null) {
-          logger.warn(
+          LogLog.warn(
             "Class " + converterClass.getName()
             + " does not extend PatternConverter.");
-        }
       }
     } catch (Exception ex) {
-      if (logger != null) {
-        logger.error("Error creating converter for " + converterId, ex);
-      }
+        LogLog.error("Error creating converter for " + converterId, ex);
 
       try {
         //
@@ -524,9 +507,7 @@
 
         return pc;
       } catch (Exception ex2) {
-        if (logger != null) {
-          logger.error("Error creating converter for " + converterId, ex2);
-        }
+          LogLog.error("Error creating converter for " + converterId, ex2);
       }
     }
 
@@ -539,7 +520,6 @@
    * @param c initial character of format specifier.
    * @param pattern conversion pattern
    * @param i current position in conversion pattern.
-   * @param logger logger to receive warnings, may be null.
    * @param currentLiteral current literal.
    * @param formattingInfo current field specifier.
    * @param converterRegistry map of user-provided pattern converters keyed by format specifier, may be null.
@@ -549,7 +529,7 @@
    * @return position after format specifier sequence.
    */
   private static int finalizeConverter(
-    char c, String pattern, int i, final ULogger logger,
+    char c, String pattern, int i,
     final StringBuffer currentLiteral, final FormattingInfo formattingInfo,
     final Map converterRegistry, final Map rules, final List patternConverters,
     final List formattingInfos) {
@@ -563,7 +543,7 @@
 
     PatternConverter pc =
       createConverter(
-        converterId, currentLiteral, converterRegistry, rules, options, logger);
+        converterId, currentLiteral, converterRegistry, rules, options);
 
     if (pc == null) {
       StringBuffer msg;
@@ -580,9 +560,7 @@
       msg.append(Integer.toString(i));
       msg.append(" in conversion pattern.");
 
-      if (logger != null) {
-        logger.error(msg.toString());
-      }
+        LogLog.error(msg.toString());
 
       patternConverters.add(
         new LiteralPatternConverter(currentLiteral.toString()));

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PropertiesPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PropertiesPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PropertiesPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/PropertiesPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,8 +16,10 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
+import java.io.*;
 import org.apache.log4j.spi.LoggingEvent;
+import java.lang.reflect.*;
 
 import java.util.*;
 
@@ -43,10 +45,9 @@
   /**
    * Private constructor.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    */
   private PropertiesPatternConverter(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     super(
       ((options != null) && (options.length > 0))
       ? ("Property{" + options[0] + "}") : "Properties", "property");
@@ -61,12 +62,11 @@
   /**
    * Obtains an instance of PropertiesPatternConverter.
    * @param options options, may be null or first element contains name of property to format.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of PropertiesPatternConverter.
    */
   public static PropertiesPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
-    return new PropertiesPatternConverter(options, logger);
+    final String[] options) {
+    return new PropertiesPatternConverter(options);
   }
 
   /**
@@ -78,19 +78,62 @@
     if (option == null) {
       toAppendTo.append("{");
 
-      Set keySet = event.getPropertyKeySet();
+      //
+      //  MDC keys are not visible prior to log4j 1.2.15
+      //
+      Set keySet = null;
+      try {
+          Method getKeySetMethod = LoggingEvent.class.getMethod(
+                  "getPropertyKeySet", null);
+          keySet = (Set) getKeySetMethod.invoke(event, null);
+      } catch(Exception ex) {
+          //
+          //  for 1.2.14 and earlier could serialize and
+          //    extract MDC content
+          try {
+            ByteArrayOutputStream outBytes = new ByteArrayOutputStream();
+            ObjectOutputStream os = new ObjectOutputStream(outBytes);
+            os.writeObject(event);
+            os.close();
+
+            byte[] raw = outBytes.toByteArray();
+            //
+            //   bytes 6 and 7 should be the length of the original classname
+            //     should be the same as our substitute class name
+            final String subClassName = LogEvent.class.getName();
+            if (raw[6] == 0 || raw[7] == subClassName.length()) {
+                //
+                //  manipulate stream to use our class name
+                //
+                for (int i = 0; i < subClassName.length(); i++) {
+                    raw[8 + i] = (byte) subClassName.charAt(i);
+                }
+                ByteArrayInputStream inBytes = new ByteArrayInputStream(raw);
+                ObjectInputStream is = new ObjectInputStream(inBytes);
+                Object cracked = is.readObject();
+                if (cracked instanceof LogEvent) {
+                    keySet = ((LogEvent) cracked).getPropertyKeySet();
+                }
+                is.close();
+            }
+          } catch(Exception ex2) {
 
-      for (Iterator i = keySet.iterator(); i.hasNext();) {
-        Object item = i.next();
-        Object val = event.getProperty(item.toString());
-        toAppendTo.append("{").append(item).append(",").append(val).append(
-          "}");
+          }
+      }
+
+      if (keySet != null) {
+        for (Iterator i = keySet.iterator(); i.hasNext();) {
+            Object item = i.next();
+            Object val = event.getMDC(item.toString());
+            toAppendTo.append("{").append(item).append(",").append(val).append(
+            "}");
+        }
       }
 
       toAppendTo.append("}");
     } else {
       // otherwise they just want a single key output
-      Object val = event.getProperty(option);
+      Object val = event.getMDC(option);
 
       if (val != null) {
         toAppendTo.append(val);

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/RelativeTimePatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -43,11 +43,10 @@
   /**
    * Obtains an instance of RelativeTimePatternConverter.
    * @param options options, currently ignored, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of RelativeTimePatternConverter.
    */
   public static RelativeTimePatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return new RelativeTimePatternConverter();
   }
 
@@ -55,7 +54,7 @@
    * {@inheritDoc}
    */
   public void format(final LoggingEvent event, final StringBuffer toAppendTo) {
-    long timestamp = event.getTimeStamp();
+    long timestamp = event.timeStamp;
 
     if (!lastTimestamp.format(timestamp, toAppendTo)) {
       final String formatted =

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/SequenceNumberPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/SequenceNumberPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/SequenceNumberPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/SequenceNumberPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -44,11 +44,10 @@
   /**
    * Obtains an instance of SequencePatternConverter.
    * @param options options, currently ignored, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of SequencePatternConverter.
    */
   public static SequenceNumberPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 
@@ -56,6 +55,6 @@
    * {@inheritDoc}
    */
   public void format(final LoggingEvent event, final StringBuffer toAppendTo) {
-    toAppendTo.append(Long.toString(event.getSequenceNumber()));
+    toAppendTo.append("0");
   }
 }

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThreadPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThreadPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThreadPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThreadPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 
 
@@ -43,11 +43,10 @@
   /**
    * Obtains an instance of ThreadPatternConverter.
    * @param options options, currently ignored, may be null.
-   * @param logger  logger, current ignored, may be null.
    * @return instance of ThreadPatternConverter.
    */
   public static ThreadPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     return INSTANCE;
   }
 

Modified: logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThrowableInformationPatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThrowableInformationPatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThrowableInformationPatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/main/java/org/apache/log4j/pattern/ThrowableInformationPatternConverter.java Wed Apr 25 08:08:13 2007
@@ -16,7 +16,7 @@
 
 package org.apache.log4j.pattern;
 
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.log4j.spi.ThrowableInformation;
 
@@ -39,10 +39,9 @@
   /**
    * Private constructor.
    * @param options options, may be null.
-   * @param logger logger for diagnostic messages, may be null.
    */
   private ThrowableInformationPatternConverter(
-    final String[] options, final ULogger logger) {
+    final String[] options) {
     super("Throwable", "throwable");
 
     if ((options != null) && (options.length > 0)) {
@@ -56,12 +55,11 @@
    * Gets an instance of the class.
     * @param options pattern options, may be null.  If first element is "short",
    * only the first line of the throwable will be formatted.
-   * @param logger logger, unused and may be null.
    * @return instance of class.
    */
   public static ThrowableInformationPatternConverter newInstance(
-    final String[] options, final ULogger logger) {
-    return new ThrowableInformationPatternConverter(options, logger);
+    final String[] options) {
+    return new ThrowableInformationPatternConverter(options);
   }
 
   /**

Modified: logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/PatternLayoutTestCase.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/PatternLayoutTestCase.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/PatternLayoutTestCase.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/PatternLayoutTestCase.java Wed Apr 25 08:08:13 2007
@@ -29,6 +29,7 @@
 import org.apache.log4j.util.RelativeTimeFilter;
 import org.apache.log4j.util.SunReflectFilter;
 import org.apache.log4j.util.Transformer;
+import org.apache.log4j.util.MDCOrderFilter;
 
 import java.io.FileReader;
 import java.text.ParsePosition;
@@ -351,13 +352,15 @@
     MDC.put("key1", "va11");
     MDC.put("key2", "va12");
     logger.debug("Hello World");
-    MDC.clear();
+    MDC.remove("key1");
+    MDC.remove("key2");
 
     Transformer.transform(
       TEMP, FILTERED,
       new Filter[] {
         new LineNumberFilter(), new SunReflectFilter(),
-        new JunitTestRunnerFilter()
+        new JunitTestRunnerFilter(),
+        new MDCOrderFilter()
       });
     assertTrue(compare(FILTERED, "witness/pattern/patternLayout.mdc.1"));
   }
@@ -507,6 +510,15 @@
     layout.activateOptions();
     root.debug("finished mdc pattern test");
 
-    assertTrue(compare(OUTPUT_FILE, WITNESS_FILE));
+      Transformer.transform(
+        OUTPUT_FILE, FILTERED,
+        new Filter[] {
+          new LineNumberFilter(), new SunReflectFilter(),
+          new JunitTestRunnerFilter(),
+          new MDCOrderFilter()
+        });
+
+    assertTrue(compare(FILTERED, WITNESS_FILE));
   }
+
 }

Modified: logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/Num343PatternConverter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/Num343PatternConverter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/Num343PatternConverter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/Num343PatternConverter.java Wed Apr 25 08:08:13 2007
@@ -17,7 +17,6 @@
 package org.apache.log4j.pattern;
 
 import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.ULogger;
 
 
 public class Num343PatternConverter extends LoggingEventPatternConverter {
@@ -27,8 +26,7 @@
   }
   private static final Num343PatternConverter INSTANCE = new Num343PatternConverter();
 
-  public static PatternConverter newInstance(final String[] options,
-                                      final ULogger logger) {
+  public static PatternConverter newInstance(final String[] options) {
       return INSTANCE;
   }
     

Modified: logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/PatternParserTest.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/PatternParserTest.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/PatternParserTest.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/pattern/PatternParserTest.java Wed Apr 25 08:08:13 2007
@@ -32,7 +32,7 @@
 import org.apache.log4j.Level;
 import org.apache.log4j.LogManager;
 import org.apache.log4j.Logger;
-import org.apache.log4j.ULogger;
+import org.apache.log4j.helpers.LogLog;
 import org.apache.log4j.spi.LoggerRepository;
 import org.apache.log4j.spi.LoggingEvent;
 
@@ -54,11 +54,8 @@
     repository = LogManager.getLoggerRepository();
     now = System.currentTimeMillis() + 13;
 
-    event = new LoggingEvent();
-    event.setLogger(logger);
-    event.setTimeStamp(now);
-    event.setLevel(Level.INFO);
-    event.setMessage("msg 1");
+    event = new LoggingEvent("org.apache.log4j.Logger",
+            logger, Level.INFO, "msg 1", null);
   }
 
   private static String convert(
@@ -69,8 +66,7 @@
     List fields = new ArrayList();
     PatternParser.parse(pattern, converters, fields,
             registry,
-            PatternParser.getPatternLayoutRules(),
-            null);
+            PatternParser.getPatternLayoutRules());
     assertEquals(converters.size(), fields.size());
 
     StringBuffer buf = new StringBuffer();
@@ -127,9 +123,9 @@
     String result = convert("%d{HH:mm:ss}{GMT} %d{HH:mm:ss} %c  - %m", null, event);
 
     SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
-    String localTime = dateFormat.format(new Date(event.getTimeStamp()));
+    String localTime = dateFormat.format(new Date(event.timeStamp));
     dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
-    String utcTime = dateFormat.format(new Date(event.getTimeStamp()));
+    String utcTime = dateFormat.format(new Date(event.timeStamp));
     StringBuffer buf = new StringBuffer(utcTime);
     buf.append(' ');
     buf.append(localTime);
@@ -161,8 +157,8 @@
   private void assertFactories(Map rules) throws Exception {
       assertTrue(rules.size() > 0);
       Iterator iter = rules.values().iterator();
-      Class[] factorySig = new Class[] { Class.forName("[Ljava.lang.String;"), ULogger.class };
-      Object[] factoryArg = new Object[] { null, null };
+      Class[] factorySig = new Class[] { Class.forName("[Ljava.lang.String;") };
+      Object[] factoryArg = new Object[] { null };
       while(iter.hasNext()) {
           Class ruleClass = (Class) iter.next();
           Method factory =  ruleClass.getMethod("newInstance", factorySig);

Modified: logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/JunitTestRunnerFilter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/JunitTestRunnerFilter.java?view=diff&rev=532381&r1=532380&r2=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/JunitTestRunnerFilter.java (original)
+++ logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/JunitTestRunnerFilter.java Wed Apr 25 08:08:13 2007
@@ -25,7 +25,7 @@
 
   private static final String[] patterns = {
           "/at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner/",
-          "/at org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner/",
+          "/at org.apache.tools.ant/",
           "/at junit.textui.TestRunner/",
           "/at com.intellij.rt.execution.junit/",
           "/at java.lang.reflect.Method.invoke/",

Added: logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/MDCOrderFilter.java
URL: http://svn.apache.org/viewvc/logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/MDCOrderFilter.java?view=auto&rev=532381
==============================================================================
--- logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/MDCOrderFilter.java (added)
+++ logging/sandbox/log4j/pattern-layout/src/test/java/org/apache/log4j/util/MDCOrderFilter.java Wed Apr 25 08:08:13 2007
@@ -0,0 +1,63 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.log4j.util;
+
+/**
+ * This class switches MDC values into the order
+ * (unreasonably) expected by the witness files.
+ */
+public class MDCOrderFilter implements Filter {
+
+    /**
+     * Unexpected orders of keys.
+     * Note expected values are "va-one-one" and "va-one-two".
+     */
+  private static final String[] patterns =
+          new String[] {
+                  "{key2,va12}{key1,va11}",
+                  "{key2,value2}{key1,value1}"
+          };
+
+    /**
+     * Replacement values.
+     */
+  private static final String[] replacements =
+            new String[] {
+                    "{key1,va11}{key2,va12}",
+                    "{key1,value1}{key2,value2}"
+            };
+
+  /**
+   *  Switch order of MDC keys when not in expected order.
+   */
+  public String filter(final String in) {
+    if (in == null) {
+      return null;
+    }
+
+    for(int i = 0; i < patterns.length; i++) {
+        int ipos = in.indexOf(patterns[i]);
+        if (ipos >= 1) {
+            return in.substring(0, ipos)
+                    + replacements[i]
+                    + in.substring(ipos + patterns[i].length());
+        }
+    }
+    return in;
+  }
+}



---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org