This commit was manufactured by cvs2svn to create tag 'v1_2_4'.
diff --git a/src/java/org/apache/log4j/chainsaw/LoggingReceiver.java b/src/java/org/apache/log4j/chainsaw/LoggingReceiver.java
index fc9cb43..3cd3455 100644
--- a/src/java/org/apache/log4j/chainsaw/LoggingReceiver.java
+++ b/src/java/org/apache/log4j/chainsaw/LoggingReceiver.java
@@ -12,7 +12,7 @@
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
-import org.apache.log4j.Category;
+import org.apache.log4j.Logger;
import org.apache.log4j.spi.LoggingEvent;
/**
@@ -21,12 +21,9 @@
*
* @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a>
*/
-class LoggingReceiver
- extends Thread
-{
+class LoggingReceiver extends Thread {
/** used to log messages **/
- private static final Category LOG =
- Category.getInstance(LoggingReceiver.class);
+ private static final Logger LOG = Logger.getLogger(LoggingReceiver.class);
/**
* Helper that actually processes a client connection. It receives events
@@ -34,9 +31,7 @@
*
* @author <a href="mailto:oliver@puppycrawl.com">Oliver Burn</a>
*/
- private class Slurper
- implements Runnable
- {
+ private class Slurper implements Runnable {
/** socket connection to read events from **/
private final Socket mClient;
@@ -90,9 +85,7 @@
* @param aPort port to listen on
* @throws IOException if an error occurs
*/
- LoggingReceiver(MyTableModel aModel, int aPort)
- throws IOException
- {
+ LoggingReceiver(MyTableModel aModel, int aPort) throws IOException {
setDaemon(true);
mModel = aModel;
mSvrSock = new ServerSocket(aPort);
diff --git a/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java b/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java
index 9a6ef8b..a5e7d4f 100644
--- a/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java
+++ b/src/java/org/apache/log4j/chainsaw/XMLFileHandler.java
@@ -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,13 +75,24 @@
/** @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) {
+ mBuf.append(String.valueOf(aChars, aStart, aLength));
+ }
+
+ /** @see DefaultHandler **/
+ public void endElement(String aNamespaceURI,
+ String aLocalName,
+ String aQName)
+ {
+ if (TAG_EVENT.equals(aQName)) {
+ addEvent();
+ resetData();
+ } 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(new String(aChars, aStart, aLength), "\t");
+ new StringTokenizer(mBuf.toString(), "\n\t");
mThrowableStrRep = new String[st.countTokens()];
if (mThrowableStrRep.length > 0) {
mThrowableStrRep[0] = st.nextToken();
@@ -94,40 +104,23 @@
}
/** @see DefaultHandler **/
- public void endElement(String aNamespaceURI,
- String aLocalName,
- String aQName)
- {
- if (TAG_EVENT.equals(aQName)) {
- addEvent();
- resetData();
- } else if (mCurrentElement != TAG_EVENT) {
- mCurrentElement = TAG_EVENT; // hack - but only thing I care about
- }
- }
-
- /** @see DefaultHandler **/
public void startElement(String aNamespaceURI,
String aLocalName,
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");
- mPriority = Priority.toPriority(aAtts.getValue("priority"));
+ 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;
}
}