ceki 2004/04/28 10:54:03 Modified: tests/witness xmlLayout.mdc.1 xmlLayout.1 xmlLayout.3 xmlLayout.null xmlLayout.2 tests/src/java/org/apache/log4j/xml XMLLayoutTestCase.java src/java/org/apache/log4j/spi LoggingEvent.java src/java/org/apache/log4j/xml XMLLayout.java Added: tests/src/java/org/apache/log4j/util XMLSequenceNumberFilter.java Log: Added a sequenceNumber field to LoggingEvent Revision Changes Path 1.3 +1 -1 logging-log4j/tests/witness/xmlLayout.mdc.1 Index: xmlLayout.mdc.1 =================================================================== RCS file: /home/cvs/logging-log4j/tests/witness/xmlLayout.mdc.1,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- xmlLayout.mdc.1 9 Jul 2003 07:35:49 -0000 1.2 +++ xmlLayout.mdc.1 28 Apr 2004 17:54:02 -0000 1.3 @@ -1,4 +1,4 @@ -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Hello]]></log4j:message> <log4j:MDC> <log4j:data name="key1" value="val1"/> 1.4 +15 -15 logging-log4j/tests/witness/xmlLayout.1 Index: xmlLayout.1 =================================================================== RCS file: /home/cvs/logging-log4j/tests/witness/xmlLayout.1,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- xmlLayout.1 14 Nov 2002 08:48:40 -0000 1.3 +++ xmlLayout.1 28 Apr 2004 17:54:02 -0000 1.4 @@ -1,48 +1,48 @@ -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase$X" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase$X" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[in X() constructor]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 0]]></log4j:message> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 0]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[Message 1]]></log4j:message> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[Message 1]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="WARN" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="WARN" thread="main"> <log4j:message><![CDATA[Message 2]]></log4j:message> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="WARN" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="WARN" thread="main"> <log4j:message><![CDATA[Message 2]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 3]]></log4j:message> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 3]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="FATAL" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="FATAL" thread="main"> <log4j:message><![CDATA[Message 4]]></log4j:message> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="FATAL" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="FATAL" thread="main"> <log4j:message><![CDATA[Message 4]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 5]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -61,7 +61,7 @@ ]]></log4j:throwable> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 5]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -80,7 +80,7 @@ ]]></log4j:throwable> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 6]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -99,7 +99,7 @@ ]]></log4j:throwable> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 6]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) 1.3 +1 -1 logging-log4j/tests/witness/xmlLayout.3 Index: xmlLayout.3 =================================================================== RCS file: /home/cvs/logging-log4j/tests/witness/xmlLayout.3,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- xmlLayout.3 9 Oct 2002 22:50:08 -0000 1.2 +++ xmlLayout.3 28 Apr 2004 17:54:02 -0000 1.3 @@ -1,4 +1,4 @@ -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message with embedded <![CDATA[<hello>hi</hello>]]>]]><![CDATA[.]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="testCDATA" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> 1.3 +3 -3 logging-log4j/tests/witness/xmlLayout.null Index: xmlLayout.null =================================================================== RCS file: /home/cvs/logging-log4j/tests/witness/xmlLayout.null,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- xmlLayout.null 3 Mar 2003 15:24:03 -0000 1.2 +++ xmlLayout.null 28 Apr 2004 17:54:02 -0000 1.3 @@ -1,12 +1,12 @@ -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[hi]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[]]></log4j:message> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[hi]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception at org.apache.log4j.xml.XMLLayoutTestCase.testNull(X) 1.5 +15 -15 logging-log4j/tests/witness/xmlLayout.2 Index: xmlLayout.2 =================================================================== RCS file: /home/cvs/logging-log4j/tests/witness/xmlLayout.2,v retrieving revision 1.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- xmlLayout.2 14 Nov 2002 08:48:40 -0000 1.4 +++ xmlLayout.2 28 Apr 2004 17:54:02 -0000 1.5 @@ -1,59 +1,59 @@ -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase$X" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase$X" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[in X() constructor]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase$X" method="<init>" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 0]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 0]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[Message 1]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="INFO" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="INFO" thread="main"> <log4j:message><![CDATA[Message 1]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="WARN" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="WARN" thread="main"> <log4j:message><![CDATA[Message 2]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="WARN" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="WARN" thread="main"> <log4j:message><![CDATA[Message 2]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 3]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 3]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="FATAL" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="FATAL" thread="main"> <log4j:message><![CDATA[Message 4]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="FATAL" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="FATAL" thread="main"> <log4j:message><![CDATA[Message 4]]></log4j:message> <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 5]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -73,7 +73,7 @@ <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="DEBUG" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="DEBUG" thread="main"> <log4j:message><![CDATA[Message 5]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -93,7 +93,7 @@ <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="org.apache.log4j.xml.XMLLayoutTestCase" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 6]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) @@ -113,7 +113,7 @@ <log4j:locationInfo class="org.apache.log4j.xml.XMLLayoutTestCase" method="common" file="XMLLayoutTestCase.java" line="X"/> </log4j:event> -<log4j:event logger="root" timestamp="XXX" level="ERROR" thread="main"> +<log4j:event logger="root" timestamp="XXX" sequenceNumber="XXX" level="ERROR" thread="main"> <log4j:message><![CDATA[Message 6]]></log4j:message> <log4j:throwable><![CDATA[java.lang.Exception: Just testing at org.apache.log4j.xml.XMLLayoutTestCase.common(X) 1.10 +11 -4 logging-log4j/tests/src/java/org/apache/log4j/xml/XMLLayoutTestCase.java Index: XMLLayoutTestCase.java =================================================================== RCS file: /home/cvs/logging-log4j/tests/src/java/org/apache/log4j/xml/XMLLayoutTestCase.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- XMLLayoutTestCase.java 27 Feb 2004 16:47:37 -0000 1.9 +++ XMLLayoutTestCase.java 28 Apr 2004 17:54:03 -0000 1.10 @@ -30,6 +30,7 @@ import org.apache.log4j.util.SunReflectFilter; import org.apache.log4j.util.Transformer; import org.apache.log4j.util.XMLLineAttributeFilter; +import org.apache.log4j.util.XMLSequenceNumberFilter; import org.apache.log4j.util.XMLTimestampFilter; import org.apache.log4j.xml.XMLLayout; @@ -60,7 +61,8 @@ Transformer.transform( TEMP, FILTERED, new Filter[] { - new LineNumberFilter(), new XMLTimestampFilter(), + new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter(), new SunReflectFilter() }); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.1")); @@ -75,6 +77,7 @@ TEMP, FILTERED, new Filter[] { new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter(), new XMLLineAttributeFilter(), new SunReflectFilter() }); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.2")); @@ -91,6 +94,7 @@ TEMP, FILTERED, new Filter[] { new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter(), new XMLLineAttributeFilter(), new SunReflectFilter() }); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.3")); @@ -106,7 +110,8 @@ logger.debug("hi", e); Transformer.transform( TEMP, FILTERED, - new Filter[] { new LineNumberFilter(), new XMLTimestampFilter() }); + new Filter[] { new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter() }); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.null")); } @@ -126,7 +131,8 @@ logger.debug("Hello"); Transformer.transform( TEMP, FILTERED, - new Filter[] { new LineNumberFilter(), new XMLTimestampFilter() }); + new Filter[] { new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter()}); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.mdc.1")); } @@ -141,7 +147,8 @@ logger.debug("Hello"); Transformer.transform( TEMP, FILTERED, - new Filter[] { new LineNumberFilter(), new XMLTimestampFilter() }); + new Filter[] { new LineNumberFilter(), new XMLTimestampFilter(), + new XMLSequenceNumberFilter() }); assertTrue(Compare.compare(FILTERED, "witness/xmlLayout.mdc.2")); } 1.1 logging-log4j/tests/src/java/org/apache/log4j/util/XMLSequenceNumberFilter.java Index: XMLSequenceNumberFilter.java =================================================================== /* * Copyright 1999,2004 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. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.log4j.util; import org.apache.oro.text.perl.Perl5Util; public class XMLSequenceNumberFilter implements Filter { Perl5Util util = new Perl5Util(); /** * If the input string contains the pattern 'sequenceNumber="123"', then * replace the number 123 by XXX and return the result. */ public String filter(String in) { if (util.match("/sequenceNumber=\"\\d{1,13}\"/", in)) { return util.substitute( "s/sequenceNumber=\"\\d{1,13}\"/sequenceNumber=\"XXX\"/", in); } else { return in; } } } 1.50 +63 -5 logging-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java Index: LoggingEvent.java =================================================================== RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java,v retrieving revision 1.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- LoggingEvent.java 23 Apr 2004 07:18:21 -0000 1.49 +++ LoggingEvent.java 28 Apr 2004 17:54:03 -0000 1.50 @@ -60,6 +60,17 @@ static final Class[] TO_LEVEL_PARAMS = new Class[] { int.class }; static final Hashtable methodCache = new Hashtable( 3 ); // use a tiny table + + /** + * LoggingEvent are stamped with a [EMAIL PROTECTED] #sequenceNumber}. The + * <code>sequenceCount</code> static variable keeps track of the current count. + * + * The count starts at 1 (one). + * + * @since 1.3 + */ + static long sequenceCount = 1; + /** * Fully qualified name of the calling category class. */ @@ -163,9 +174,18 @@ * The number of milliseconds elapsed from 1/1/1970 until logging event was * created. */ - public final long timeStamp; + public long timeStamp; /** + * + * Each logging event bears a sequence number. + * + * @since 1.3 + */ + long sequenceNumber; + + + /** * Location information for the caller. */ private LocationInfo locationInfo; @@ -185,8 +205,8 @@ * @param message The message of this event. * @param throwable The throwable of this event. */ - public LoggingEvent( String fqnOfCategoryClass, Category logger, Priority priority, Object message, - Throwable throwable ) { + public LoggingEvent( String fqnOfCategoryClass, Category logger, + Priority priority, Object message, Throwable throwable ) { this.fqnOfCategoryClass = fqnOfCategoryClass; this.logger = logger; this.categoryName = logger.getName( ); @@ -198,6 +218,7 @@ } timeStamp = System.currentTimeMillis( ); + sequenceNumber = sequenceCount++; } @@ -217,8 +238,8 @@ * @param message The message of this event. * @param throwable The throwable of this event. */ - public LoggingEvent( String fqnOfCategoryClass, Category logger, long timeStamp, Priority priority, Object message, - Throwable throwable ) { + public LoggingEvent( String fqnOfCategoryClass, Category logger, long timeStamp, + Priority priority, Object message, Throwable throwable ) { this.fqnOfCategoryClass = fqnOfCategoryClass; this.logger = logger; this.categoryName = logger.getName( ); @@ -554,6 +575,22 @@ } + /** + * + * @since 1.3 + */ + public long getSequenceNumber() { + return sequenceNumber; + } + + /** + * + * @since 1.3 + */ + public void setSequenceNumber(long sequenceNumber) { + this.sequenceNumber = sequenceNumber; + } + public String getThreadName( ) { if ( threadName == null ) { threadName = ( Thread.currentThread( ) ).getName( ); @@ -695,5 +732,26 @@ // 1.1.x. We have to resort to this hack instead. oos.writeObject( clazz.getName( ) ); } + } + + + /** + * Getter for the event's time stamp. The time stamp is calculated starting + * from 1970-01-01 GMT. + * + * @since 1.3 + */ + public long getTimeStamp() { + return timeStamp; + } + + /** + * Setter for the even'ts time stamp. + * See also [EMAIL PROTECTED] #getTimeStamp}. + * @since 1.3 + */ + + public void setTimeStamp(long timeStamp) { + this.timeStamp = timeStamp; } } 1.26 +2 -0 logging-log4j/src/java/org/apache/log4j/xml/XMLLayout.java Index: XMLLayout.java =================================================================== RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/xml/XMLLayout.java,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- XMLLayout.java 27 Feb 2004 16:47:35 -0000 1.25 +++ XMLLayout.java 28 Apr 2004 17:54:03 -0000 1.26 @@ -106,6 +106,8 @@ output.write(event.getLoggerName()); output.write("\" timestamp=\""); output.write(Long.toString(event.timeStamp)); + output.write("\" sequenceNumber=\""); + output.write(Long.toString(event.getSequenceNumber())); output.write("\" level=\""); output.write(event.getLevel().toString()); output.write("\" thread=\"");
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]