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 @@
         + "&nbsp;&nbsp;<b>Priority:</b> <code>{1}</code>"
         + "&nbsp;&nbsp;<b>Thread:</b> <code>{2}</code>"
         + "&nbsp;&nbsp;<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>");
  +      + "&nbsp;&nbsp;<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]

Reply via email to