mwomack 2003/03/19 21:42:46 Modified: src/java/org/apache/log4j/chainsaw XMLFileHandler.java MyTableModel.java EventDetails.java DetailPanel.java ControlPanel.java Log: Changes to support display and filtering of property values. Revision Changes Path 1.11 +2 -2 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- XMLFileHandler.java 19 Mar 2003 06:04:11 -0000 1.10 +++ XMLFileHandler.java 20 Mar 2003 05:42:46 -0000 1.11 @@ -215,8 +215,8 @@ private void addEvent() { mEventSink.addEvent( new EventDetails( - mTimeStamp, mPriority, mCategoryName, mNDC, null, mThreadName, mMessage, - mThrowableStrRep, mLocationDetails)); + mTimeStamp, mPriority, mCategoryName, mNDC, null, null, mThreadName, + mMessage, mThrowableStrRep, mLocationDetails)); mNumEvents++; } 1.9 +22 -2 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- MyTableModel.java 19 Mar 2003 06:04:11 -0000 1.8 +++ MyTableModel.java 20 Mar 2003 05:42:46 -0000 1.9 @@ -103,7 +103,7 @@ /** names of the columns in the table **/ private static final String[] COL_NAMES = - { "Time", "Priority", "Trace", "Category", "NDC", "MDC", "Message" }; + { "Time", "Priority", "Trace", "Category", "NDC", "MDC", "Properties", "Message" }; /** definition of an empty list **/ private static final EventDetails[] EMPTY_LIST = new EventDetails[] { }; @@ -139,6 +139,9 @@ /** filter for the MDC **/ private String mMDCFilter = ""; + /** filter for the Properties **/ + private String mPropertiesFilter = ""; + /** filter for the category **/ private String mCategoryFilter = ""; @@ -202,6 +205,8 @@ return event.getNDC(); } else if (aCol == 5) { return event.getMDC(); + } else if (aCol == 6) { + return event.getProperties(); } return event.getMessage(); @@ -274,6 +279,18 @@ } /** + * Set the filter for the Properties field. + * + * @param aStr the string to match + */ + public void setPropertiesFilter(String aStr) { + synchronized (mLock) { + mPropertiesFilter = aStr.trim(); + updateFilteredEvents(false); + } + } + + /** * Set the filter for the category field. * * @param aStr the string to match @@ -396,7 +413,10 @@ && (aEvent.getNDC().indexOf(mNDCFilter) >= 0))) && ((mMDCFilter.length() == 0) || ((aEvent.getMDC() != null) - && (aEvent.getMDC().indexOf(mMDCFilter) >= 0)))) { + && (aEvent.getMDC().indexOf(mMDCFilter) >= 0))) + && ((mPropertiesFilter.length() == 0) + || ((aEvent.getProperties() != null) + && (aEvent.getProperties().indexOf(mPropertiesFilter) >= 0)))) { final String rm = aEvent.getMessage(); if (rm == null) { 1.5 +39 -5 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.4 retrieving revision 1.5 diff -u -r1.4 -r1.5 --- EventDetails.java 19 Mar 2003 06:04:11 -0000 1.4 +++ EventDetails.java 20 Mar 2003 05:42:46 -0000 1.5 @@ -78,6 +78,9 @@ /** the MDC for the event **/ private final String mMDC; + /** the Properties for the event **/ + private final String mProperties; + /** the thread for the event **/ private final String mThreadName; @@ -103,13 +106,14 @@ */ EventDetails( long aTimeStamp, Priority aPriority, String aCategoryName, String aNDC, - String aMDC, String aThreadName, String aMessage, String[] aThrowableStrRep, - String aLocationDetails) { + String aMDC, String aProperties, String aThreadName, String aMessage, + String[] aThrowableStrRep, String aLocationDetails) { mTimeStamp = aTimeStamp; mPriority = aPriority; mCategoryName = aCategoryName; mNDC = aNDC; mMDC = aMDC; + mProperties = aProperties; mThreadName = aThreadName; mMessage = aMessage; mThrowableStrRep = aThrowableStrRep; @@ -124,8 +128,9 @@ EventDetails(LoggingEvent aEvent) { this( aEvent.timeStamp, aEvent.getLevel(), aEvent.getLoggerName(), - aEvent.getNDC(), getEventMDC(aEvent), aEvent.getThreadName(), - aEvent.getRenderedMessage(), aEvent.getThrowableStrRep(), + aEvent.getNDC(), getEventMDC(aEvent), getEventProperties(aEvent), + aEvent.getThreadName(), aEvent.getRenderedMessage(), + aEvent.getThrowableStrRep(), (aEvent.getLocationInformation() == null) ? null : aEvent .getLocationInformation().fullInfo); @@ -156,6 +161,11 @@ return mMDC; } + /** @see #mProperties **/ + String getProperties() { + return mProperties; + } + /** @see #mThreadName **/ String getThreadName() { return mThreadName; @@ -185,7 +195,7 @@ Set keySet = event.getMDCKeySet(); if (!keySet.isEmpty()) { String mdcString = ""; - Iterator keyIter = event.getMDCKeySet().iterator(); + Iterator keyIter = keySet.iterator(); while (keyIter.hasNext()) { if (mdcString.length() != 0) { mdcString += ','; @@ -195,6 +205,30 @@ mdcString += key + "=" + value; } return mdcString; + } + + return null; + } + + /** + Used internally to convert the properties contents to a string. + + @param event The LoggingEvent to use for the properties contents. + @return String The properties contents in string form. */ + private static String getEventProperties(LoggingEvent event) { + Set keySet = event.getPropertyKeySet(); + if (!keySet.isEmpty()) { + String propertyString = ""; + Iterator keyIter = keySet.iterator(); + while (keyIter.hasNext()) { + if (propertyString.length() != 0) { + propertyString += ','; + } + String key = (String)keyIter.next(); + String value = (String)event.getProperty(key); + propertyString += key + "=" + value; + } + return propertyString; } return null; 1.6 +8 -7 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.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- DetailPanel.java 19 Mar 2003 06:04:11 -0000 1.5 +++ DetailPanel.java 20 Mar 2003 05:42:46 -0000 1.6 @@ -82,11 +82,12 @@ "<b>Time:</b> <code>{0,time,medium}</code>" + " <b>Priority:</b> <code>{1}</code>" + " <b>Thread:</b> <code>{2}</code>" - + " <b>NDC:</b> <code>{3}</code>" + + "<br><b>NDC:</b> <code>{3}</code>" + " <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>"); + + " <b>Properties:</b> <code>{5}</code>" + + "<br><b>Category:</b> <code>{6}</code>" + + "<br><b>Location:</b> <code>{7}</code>" + "<br><b>Message:</b>" + + "<pre>{8}</pre>" + "<b>Throwable:</b>" + "<pre>{9}</pre>"); /** the model for the data to render **/ private final MyTableModel mModel; @@ -131,9 +132,9 @@ final Object[] args = { new Date(e.getTimeStamp()), e.getPriority(), escape(e.getThreadName()), - escape(e.getNDC()), escape(e.getMDC()), escape(e.getCategoryName()), - escape(e.getLocationDetails()), escape(e.getMessage()), - escape(getThrowableStrRep(e)) + escape(e.getNDC()), escape(e.getMDC()), escape(e.getProperties()), + escape(e.getCategoryName()), escape(e.getLocationDetails()), + escape(e.getMessage()), escape(getThrowableStrRep(e)) }; mDetails.setText(FORMATTER.format(args)); mDetails.setCaretPosition(0); 1.9 +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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- ControlPanel.java 19 Mar 2003 06:04:11 -0000 1.8 +++ ControlPanel.java 20 Mar 2003 05:42:46 -0000 1.9 @@ -107,6 +107,11 @@ public static final String MDC_PROPERTY = "mdc"; /** + * Properties filter property + */ + public static final String PROPERTIES_PROPERTY = "properties"; + + /** * Message filter property */ public static final String MESSAGE_PROPERTY = "message"; @@ -174,6 +179,11 @@ add(label); c.gridy++; + label = new JLabel("Filter Properties:"); + gridbag.setConstraints(label, c); + add(label); + + c.gridy++; label = new JLabel("Filter Message:"); gridbag.setConstraints(label, c); add(label); @@ -263,10 +273,12 @@ String ndcProp = ""; String mdcProp = ""; + String propertiesProp = ""; if (savePrefs) { ndcProp = prefs.getProperty(NDC_PROPERTY, ""); mdcProp = prefs.getProperty(MDC_PROPERTY, ""); + propertiesProp = prefs.getProperty(PROPERTIES_PROPERTY, ""); } final JTextField ndcField = new JTextField(ndcProp); @@ -294,6 +306,20 @@ }); gridbag.setConstraints(mdcField, c); add(mdcField); + + c.gridy++; + + final JTextField propertiesField = new JTextField(propertiesProp); + aModel.setPropertiesFilter(propertiesProp); + propertiesField.getDocument().addDocumentListener( + new DocumentChangeListener() { + public void update(DocumentEvent aEvent) { + aModel.setPropertiesFilter(propertiesField.getText()); + prefs.setProperty(PROPERTIES_PROPERTY, propertiesField.getText()); + } + }); + gridbag.setConstraints(propertiesField, c); + add(propertiesField); c.gridy++;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]