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]