mwomack 2003/03/18 22:04:11
Modified: src/java/org/apache/log4j/chainsaw XMLFileHandler.java
MyTableModel.java EventDetails.java
DetailPanel.java ControlPanel.java
Log:
Changes to display and filter the MDC values.
Revision Changes Path
1.10 +1 -1
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.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XMLFileHandler.java 18 Mar 2003 13:33:32 -0000 1.9
+++ XMLFileHandler.java 19 Mar 2003 06:04:11 -0000 1.10
@@ -215,7 +215,7 @@
private void addEvent() {
mEventSink.addEvent(
new EventDetails(
- mTimeStamp, mPriority, mCategoryName, mNDC, mThreadName, mMessage,
+ mTimeStamp, mPriority, mCategoryName, mNDC, null, mThreadName, mMessage,
mThrowableStrRep, mLocationDetails));
mNumEvents++;
}
1.8 +23 -3
jakarta-log4j/src/java/org/apache/log4j/chainsaw/MyTableModel.java
Index: MyTableModel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/MyTableModel.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- MyTableModel.java 18 Mar 2003 13:33:32 -0000 1.7
+++ MyTableModel.java 19 Mar 2003 06:04:11 -0000 1.8
@@ -103,7 +103,7 @@
/** names of the columns in the table **/
private static final String[] COL_NAMES =
- { "Time", "Priority", "Trace", "Category", "NDC", "Message" };
+ { "Time", "Priority", "Trace", "Category", "NDC", "MDC", "Message" };
/** definition of an empty list **/
private static final EventDetails[] EMPTY_LIST = new EventDetails[] { };
@@ -136,6 +136,9 @@
/** filter for the NDC **/
private String mNDCFilter = "";
+ /** filter for the MDC **/
+ private String mMDCFilter = "";
+
/** filter for the category **/
private String mCategoryFilter = "";
@@ -197,6 +200,8 @@
return event.getCategoryName();
} else if (aCol == 4) {
return event.getNDC();
+ } else if (aCol == 5) {
+ return event.getMDC();
}
return event.getMessage();
@@ -257,6 +262,18 @@
}
/**
+ * Set the filter for the MDC field.
+ *
+ * @param aStr the string to match
+ */
+ public void setMDCFilter(String aStr) {
+ synchronized (mLock) {
+ mMDCFilter = aStr.trim();
+ updateFilteredEvents(false);
+ }
+ }
+
+ /**
* Set the filter for the category field.
*
* @param aStr the string to match
@@ -375,8 +392,11 @@
&& (aEvent.getThreadName().indexOf(mThreadFilter) >= 0)
&& (aEvent.getCategoryName().indexOf(mCategoryFilter) >= 0)
&& ((mNDCFilter.length() == 0)
- || ((aEvent.getNDC() != null)
- && (aEvent.getNDC().indexOf(mNDCFilter) >= 0)))) {
+ || ((aEvent.getNDC() != null)
+ && (aEvent.getNDC().indexOf(mNDCFilter) >= 0)))
+ && ((mMDCFilter.length() == 0)
+ || ((aEvent.getMDC() != null)
+ && (aEvent.getMDC().indexOf(mMDCFilter) >= 0)))) {
final String rm = aEvent.getMessage();
if (rm == null) {
1.4 +38 -3
jakarta-log4j/src/java/org/apache/log4j/chainsaw/EventDetails.java
Index: EventDetails.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/EventDetails.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- EventDetails.java 11 Mar 2003 03:59:22 -0000 1.3
+++ EventDetails.java 19 Mar 2003 06:04:11 -0000 1.4
@@ -49,6 +49,8 @@
package org.apache.log4j.chainsaw;
+import java.util.Iterator;
+import java.util.Set;
import org.apache.log4j.Priority;
import org.apache.log4j.spi.LoggingEvent;
@@ -73,6 +75,9 @@
/** the NDC for the event **/
private final String mNDC;
+ /** the MDC for the event **/
+ private final String mMDC;
+
/** the thread for the event **/
private final String mThreadName;
@@ -98,12 +103,13 @@
*/
EventDetails(
long aTimeStamp, Priority aPriority, String aCategoryName, String aNDC,
- String aThreadName, String aMessage, String[] aThrowableStrRep,
+ String aMDC, String aThreadName, String aMessage, String[] aThrowableStrRep,
String aLocationDetails) {
mTimeStamp = aTimeStamp;
mPriority = aPriority;
mCategoryName = aCategoryName;
mNDC = aNDC;
+ mMDC = aMDC;
mThreadName = aThreadName;
mMessage = aMessage;
mThrowableStrRep = aThrowableStrRep;
@@ -118,8 +124,8 @@
EventDetails(LoggingEvent aEvent) {
this(
aEvent.timeStamp, aEvent.getLevel(), aEvent.getLoggerName(),
- aEvent.getNDC(), aEvent.getThreadName(), aEvent.getRenderedMessage(),
- aEvent.getThrowableStrRep(),
+ aEvent.getNDC(), getEventMDC(aEvent), aEvent.getThreadName(),
+ aEvent.getRenderedMessage(), aEvent.getThrowableStrRep(),
(aEvent.getLocationInformation() == null) ? null
: aEvent
.getLocationInformation().fullInfo);
@@ -145,6 +151,11 @@
return mNDC;
}
+ /** @see #mMDC **/
+ String getMDC() {
+ return mMDC;
+ }
+
/** @see #mThreadName **/
String getThreadName() {
return mThreadName;
@@ -163,5 +174,29 @@
/** @see #mThrowableStrRep **/
String[] getThrowableStrRep() {
return mThrowableStrRep;
+ }
+
+ /**
+ Used internally to convert the MDC contents to a string.
+
+ @param event The LoggingEvent to use for the MDC contents.
+ @return String The MDC contents in string form. */
+ private static String getEventMDC(LoggingEvent event) {
+ Set keySet = event.getMDCKeySet();
+ if (!keySet.isEmpty()) {
+ String mdcString = "";
+ Iterator keyIter = event.getMDCKeySet().iterator();
+ while (keyIter.hasNext()) {
+ if (mdcString.length() != 0) {
+ mdcString += ',';
+ }
+ String key = (String)keyIter.next();
+ String value = (String)event.getMDC(key);
+ mdcString += key + "=" + value;
+ }
+ return mdcString;
+ }
+
+ return null;
}
}
1.5 +5 -4
jakarta-log4j/src/java/org/apache/log4j/chainsaw/DetailPanel.java
Index: DetailPanel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/DetailPanel.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DetailPanel.java 18 Mar 2003 13:33:32 -0000 1.4
+++ DetailPanel.java 19 Mar 2003 06:04:11 -0000 1.5
@@ -83,9 +83,10 @@
+ " <b>Priority:</b> <code>{1}</code>"
+ " <b>Thread:</b> <code>{2}</code>"
+ " <b>NDC:</b> <code>{3}</code>"
- + "<br><b>Category:</b> <code>{4}</code>"
- + "<br><b>Location:</b> <code>{5}</code>" + "<br><b>Message:</b>"
- + "<pre>{6}</pre>" + "<b>Throwable:</b>" + "<pre>{7}</pre>");
+ + " <b>MDC:</b> <code>{4}</code>"
+ + "<br><b>Category:</b> <code>{5}</code>"
+ + "<br><b>Location:</b> <code>{6}</code>" + "<br><b>Message:</b>"
+ + "<pre>{7}</pre>" + "<b>Throwable:</b>" + "<pre>{8}</pre>");
/** the model for the data to render **/
private final MyTableModel mModel;
@@ -130,7 +131,7 @@
final Object[] args =
{
new Date(e.getTimeStamp()), e.getPriority(), escape(e.getThreadName()),
- escape(e.getNDC()), escape(e.getCategoryName()),
+ escape(e.getNDC()), escape(e.getMDC()), escape(e.getCategoryName()),
escape(e.getLocationDetails()), escape(e.getMessage()),
escape(getThrowableStrRep(e))
};
1.8 +26 -0
jakarta-log4j/src/java/org/apache/log4j/chainsaw/ControlPanel.java
Index: ControlPanel.java
===================================================================
RCS file:
/home/cvs/jakarta-log4j/src/java/org/apache/log4j/chainsaw/ControlPanel.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- ControlPanel.java 18 Mar 2003 19:46:30 -0000 1.7
+++ ControlPanel.java 19 Mar 2003 06:04:11 -0000 1.8
@@ -102,6 +102,11 @@
public static final String NDC_PROPERTY = "ndc";
/**
+ * MDC filter property
+ */
+ public static final String MDC_PROPERTY = "mdc";
+
+ /**
* Message filter property
*/
public static final String MESSAGE_PROPERTY = "message";
@@ -164,6 +169,11 @@
add(label);
c.gridy++;
+ label = new JLabel("Filter MDC:");
+ gridbag.setConstraints(label, c);
+ add(label);
+
+ c.gridy++;
label = new JLabel("Filter Message:");
gridbag.setConstraints(label, c);
add(label);
@@ -252,9 +262,11 @@
c.gridy++;
String ndcProp = "";
+ String mdcProp = "";
if (savePrefs) {
ndcProp = prefs.getProperty(NDC_PROPERTY, "");
+ mdcProp = prefs.getProperty(MDC_PROPERTY, "");
}
final JTextField ndcField = new JTextField(ndcProp);
@@ -268,6 +280,20 @@
});
gridbag.setConstraints(ndcField, c);
add(ndcField);
+
+ c.gridy++;
+
+ final JTextField mdcField = new JTextField(mdcProp);
+ aModel.setMDCFilter(mdcProp);
+ mdcField.getDocument().addDocumentListener(
+ new DocumentChangeListener() {
+ public void update(DocumentEvent aEvent) {
+ aModel.setMDCFilter(mdcField.getText());
+ prefs.setProperty(MDC_PROPERTY, mdcField.getText());
+ }
+ });
+ gridbag.setConstraints(mdcField, c);
+ add(mdcField);
c.gridy++;
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]