cvs commit: jakarta-log4j/src/java/org/apache/log4j/chainsaw XMLFileHandler.java
[email protected] 29 May 2002 11:54:24 -0000
| Newsgroups | gmane.comp.jakarta.log4j.cvs |
|---|---|
| Message-ID | <[email protected]> |
oburn 02/05/29 04:54:24
Modified: src/java/org/apache/log4j/chainsaw Tag: v1_2-branch
XMLFileHandler.java
Log:
PR: 9435
Brought down changes made on the mainline to support Xerces and Crimson.
Now support the updated version of the log4j.dtd as requested by Ceki.
Revision Changes Path
No revision
No revision
1.2.2.1 +21 -28 jakarta-log4j/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java
Index: XMLFileHandler.java
===================================================================
RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java,v
retrieving revision 1.2
retrieving revision 1.2.2.1
diff -u -r1.2 -r1.2.2.1
--- XMLFileHandler.java 2 May 2002 11:25:49 -0000 1.2
+++ XMLFileHandler.java 29 May 2002 11:54:24 -0000 1.2.2.1
@@ -37,12 +37,10 @@
private final MyTableModel mModel;
/** the number of events in the document **/
private int mNumEvents;
- /** the current element being parsed **/
- private String mCurrentElement;
/** the time of the event **/
private long mTimeStamp;
- /** the priority of the event **/
+ /** the priority (level) of the event **/
private Priority mPriority;
/** the category of the event **/
private String mCategoryName;
@@ -56,7 +54,8 @@
private String[] mThrowableStrRep;
/** the location details for the event **/
private String mLocationDetails;
-
+ /** buffer for collecting text **/
+ private final StringBuffer mBuf = new StringBuffer();
/**
* Creates a new <code>XMLFileHandler</code> instance.
@@ -76,21 +75,7 @@
/** @see DefaultHandler **/
public void characters(char[] aChars, int aStart, int aLength) {
- if (mCurrentElement == TAG_NDC) {
- mNDC = new String(aChars, aStart, aLength);
- } else if (mCurrentElement == TAG_MESSAGE) {
- mMessage = new String(aChars, aStart, aLength);
- } else if (mCurrentElement == TAG_THROWABLE) {
- final StringTokenizer st =
- new StringTokenizer(new String(aChars, aStart, aLength), "\t");
- mThrowableStrRep = new String[st.countTokens()];
- if (mThrowableStrRep.length > 0) {
- mThrowableStrRep[0] = st.nextToken();
- for (int i = 1; i < mThrowableStrRep.length; i++) {
- mThrowableStrRep[i] = "\t" + st.nextToken();
- }
- }
- }
+ mBuf.append(String.valueOf(aChars, aStart, aLength));
}
/** @see DefaultHandler **/
@@ -101,8 +86,20 @@
if (TAG_EVENT.equals(aQName)) {
addEvent();
resetData();
- } else if (mCurrentElement != TAG_EVENT) {
- mCurrentElement = TAG_EVENT; // hack - but only thing I care about
+ } else if (TAG_NDC.equals(aQName)) {
+ mNDC = mBuf.toString();
+ } else if (TAG_MESSAGE.equals(aQName)) {
+ mMessage = mBuf.toString();
+ } else if (TAG_THROWABLE.equals(aQName)) {
+ final StringTokenizer st =
+ new StringTokenizer(mBuf.toString(), "\n\t");
+ mThrowableStrRep = new String[st.countTokens()];
+ if (mThrowableStrRep.length > 0) {
+ mThrowableStrRep[0] = st.nextToken();
+ for (int i = 1; i < mThrowableStrRep.length; i++) {
+ mThrowableStrRep[i] = "\t" + st.nextToken();
+ }
+ }
}
}
@@ -112,22 +109,18 @@
String aQName,
Attributes aAtts)
{
+ mBuf.setLength(0);
+
if (TAG_EVENT.equals(aQName)) {
mThreadName = aAtts.getValue("thread");
mTimeStamp = Long.parseLong(aAtts.getValue("timestamp"));
- mCategoryName = aAtts.getValue("category");
+ mCategoryName = aAtts.getValue("logger");
mPriority = Priority.toPriority(aAtts.getValue("level"));
} else if (TAG_LOCATION_INFO.equals(aQName)) {
mLocationDetails = aAtts.getValue("class") + "."
+ aAtts.getValue("method")
+ "(" + aAtts.getValue("file") + ":" + aAtts.getValue("line")
+ ")";
- } else if (TAG_NDC.equals(aQName)) {
- mCurrentElement = TAG_NDC;
- } else if (TAG_MESSAGE.equals(aQName)) {
- mCurrentElement = TAG_MESSAGE;
- } else if (TAG_THROWABLE.equals(aQName)) {
- mCurrentElement = TAG_THROWABLE;
}
}