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]