You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4j-cvs@jakarta.apache.org by ce...@apache.org on 2001/03/28 18:30:37 UTC

cvs commit: jakarta-log4j/src/java/org/apache/log4j/xml XMLLayout.java

ceki        01/03/28 08:30:36

  Modified:    src/java/org/apache/log4j Category.java HTMLLayout.java
                        Makefile WriterAppender.java
               src/java/org/apache/log4j/net SMTPAppender.java
                        SyslogAppender.java
               src/java/org/apache/log4j/net/test socketServer.lcf
               src/java/org/apache/log4j/nt NTEventLogAppender.java
               src/java/org/apache/log4j/spi LoggingEvent.java Makefile
               src/java/org/apache/log4j/test/witness pattern.15
               src/java/org/apache/log4j/xml XMLLayout.java
  Removed:     src/java/org/apache/log4j/spi ThrowableStrRep.java
  Log:
  Now using spi/ThrowableInformation to handle exceptions.
  
  Revision  Changes    Path
  1.24      +18 -7     jakarta-log4j/src/java/org/apache/log4j/Category.java
  
  Index: Category.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Category.java,v
  retrieving revision 1.23
  retrieving revision 1.24
  diff -u -r1.23 -r1.24
  --- Category.java	2001/02/14 22:41:42	1.23
  +++ Category.java	2001/03/28 16:30:23	1.24
  @@ -44,8 +44,8 @@
     distintive features of log4j are hierarchical categories and their
     evaluation.
   
  -  <p>See the <a href="../../../manual.html">user manual</a> for an
  -  introduction on this class.
  +  <p>See the <a href="../../../../manual.html">user manual</a> for an
  +  introduction on this class. 
   
     @author Ceki G&uuml;lc&uuml;
     @author Anders Kristensen */
  @@ -69,24 +69,31 @@
        See also {@link #DEFAULT_CONFIGURATION_KEY} for a more general
        alternative.
   
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +
        @since 0.8.5 */
        static public final String DEFAULT_CONFIGURATION_FILE = "log4j.properties";
        
     /**
  -     This String constant is set to <b>log4j.configuration</b>. 
  +     This string constant is set to <b>log4j.configuration</b>. 
   
  -     <p>It corresponds to name of the system property which, if set,
  +     <p>It corresponds to name of a system property that, if set,
        specifies the name of the resource containing the properties file
        or {@link URL} with which log4j should configure itself. See
        {@link OptionConverter#selectAndConfigure} for more detailed
  -     information on the processing of this options.
  +     information on the processing of this option.
   
        <p>Setting the <b>log4j.configuration</b> system property
  -     overrides the default search for the file
  -     <b>log4j.properties</b>.
  +     overrides the default search for the file <b>log4j.properties</b>.
   
        <p>Note that all property keys are case sensitive.  
   
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
  +
        @since 1.0 */
        static final public String DEFAULT_CONFIGURATION_KEY="log4j.configuration";
   
  @@ -97,6 +104,10 @@
   
        <p>The current value of the DEFAULT_INIT_OVERRIDE_KEY string
        constant is <b>log4j.defaultInitOverride</b>.
  +
  +     <p>See also the full description of <a
  +     href="../../../../manual.html#defaultInit">default
  +     intialization</a> procedure.
   
        <p>Note that all property keys are case sensitive.  
   
  
  
  
  1.14      +20 -45    jakarta-log4j/src/java/org/apache/log4j/HTMLLayout.java
  
  Index: HTMLLayout.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/HTMLLayout.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HTMLLayout.java	2001/03/19 12:38:18	1.13
  +++ HTMLLayout.java	2001/03/28 16:30:24	1.14
  @@ -24,6 +24,8 @@
     protected final int BUF_SIZE = 256;
     protected final int MAX_CAPACITY = 1024;
   
  +  static String TRACE_PREFIX = "<br>&nbsp;&nbsp;&nbsp;&nbsp;";
  +
     // output buffer appended to when format() is invoked
     private StringBuffer sbuf = new StringBuffer(BUF_SIZE);
   
  @@ -124,17 +126,30 @@
   
       sbuf.append("</tr>");
   
  -    Throwable t = event.throwable; // JVM is a stack machine
  -    if(t != null) {
  +    String[] s = event.getThrowableStrRep(); 
  +    if(s != null) {
         sbuf.append("\r\n<tr><td colspan=\"7\">");
  -      sbuf.append(getThrowableAsHTML(t));
  +      appendThrowableAsHTML(s, sbuf);
         sbuf.append("</td></tr>");
       }
  -
  -
       return sbuf.toString();
     }
   
  +  void appendThrowableAsHTML(String[] s, StringBuffer sbuf) {
  +    if(s != null) {
  +      int len = s.length;
  +      if(len == 0) 
  +	return;
  +      sbuf.append(s[0]);
  +      sbuf.append(Layout.LINE_SEP);
  +      for(int i = 1; i < len; i++) {
  +	sbuf.append(TRACE_PREFIX);
  +	sbuf.append(s[i]);
  +	sbuf.append(Layout.LINE_SEP);
  +      }
  +    }
  +  }
  +
     /**
        Returns appropriate HTML headers.
     */
  @@ -161,17 +176,7 @@
     }
     
     
  -  String getThrowableAsHTML(Throwable throwable) {
  -    if(throwable == null) 
  -      return null;
  - 
  -    StringWriter sw = new StringWriter();
  -    HTMLPrintWriter hpw = new HTMLPrintWriter(sw);
   
  -    throwable.printStackTrace(hpw);
  -    return sw.toString();
  -  }
  -
   
     /**
        The HTML layout handles the throwable contained in logging
  @@ -181,34 +186,4 @@
       return false;
     }
   
  -  /**
  -     Format exceptions in HTML aware way.
  -   */
  -  static class HTMLPrintWriter extends PrintWriter {
  -    
  -    static String TRACE_PREFIX = "<br>&nbsp;&nbsp;&nbsp;&nbsp;";
  -
  -    public
  -    HTMLPrintWriter(Writer writer) {
  -      super(writer);
  -    }
  -
  -    /**
  -       Some JDKs use println(char[])
  -     */
  -    public
  -    void println(char[] c) {
  -      write(TRACE_PREFIX);
  -      this.write(c);
  -    }
  -
  -    /**
  -       Yet others use println(String). Go figure.
  -    */    
  -    public
  -    void println(String s) {
  -      write(TRACE_PREFIX);
  -      this.write(s);
  -    }    
  -  }
   }
  
  
  
  1.7       +1 -1      jakarta-log4j/src/java/org/apache/log4j/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/Makefile,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Makefile	2001/03/21 21:33:52	1.6
  +++ Makefile	2001/03/28 16:30:24	1.7
  @@ -24,7 +24,7 @@
   	WriterAppender.java\
   	ConsoleAppender.java\
   
  -SUBDIRS :=helpers spi config or xml net nt varia test performance examples gui
  +SUBDIRS :=helpers spi config or xml net nt varia test performance examples 
   
   # include master-rule file
   include $(DEPTH)/make/make.inc
  
  
  
  1.11      +7 -8      jakarta-log4j/src/java/org/apache/log4j/WriterAppender.java
  
  Index: WriterAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/WriterAppender.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- WriterAppender.java	2001/03/21 23:16:59	1.10
  +++ WriterAppender.java	2001/03/28 16:30:25	1.11
  @@ -302,14 +302,13 @@
       this.qw.write(this.layout.format(event));
   
       if(layout.ignoresThrowable()) {
  -      if(event.throwable != null) {
  -	event.throwable.printStackTrace(this.tp);
  -      }
  -      // in case we received this event from a remote client    
  -      else {
  -	String tInfo = event.getThrowableInformation();
  -	if (tInfo != null) 
  -	  this.qw.write(tInfo);
  +      String[] s = event.getThrowableStrRep();
  +      if (s != null) {
  +	int len = s.length;
  +	for(int i = 0; i < len; i++) {
  +	  this.qw.write(s[i]);
  +	  this.qw.write(Layout.LINE_SEP);
  +	}
         }
       }
    
  
  
  
  1.21      +6 -3      jakarta-log4j/src/java/org/apache/log4j/net/SMTPAppender.java
  
  Index: SMTPAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/SMTPAppender.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- SMTPAppender.java	2001/03/21 23:17:04	1.20
  +++ SMTPAppender.java	2001/03/28 16:30:28	1.21
  @@ -308,9 +308,12 @@
   	LoggingEvent event = cb.get();
   	sbuf.append(layout.format(event));
   	if(layout.ignoresThrowable()) {
  -	  String tInfo = event.getThrowableInformation();
  -	  if (tInfo != null) 
  -	    sbuf.append(tInfo);
  +	  String[] s = event.getThrowableStrRep();
  +	  if (s != null) {
  +	    for(int j = 0; j < s.length; j++) {
  +	      sbuf.append(s[j]);
  +	    }
  +	  }
   	}
         }
         t = layout.getFooter();
  
  
  
  1.8       +15 -10    jakarta-log4j/src/java/org/apache/log4j/net/SyslogAppender.java
  
  Index: SyslogAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/SyslogAppender.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SyslogAppender.java	2001/03/19 12:38:20	1.7
  +++ SyslogAppender.java	2001/03/28 16:30:28	1.8
  @@ -84,12 +84,14 @@
     protected static final int SYSLOG_HOST_OI = 0;
     protected static final int FACILITY_OI = 1;
     
  +  static final String TAB = "    ";
  +
     // Have LOG_USER as default
     int syslogFacility = LOG_USER;
     String facilityStr;  
     boolean facilityPrinting = false;
     
  -  SyslogTracerPrintWriter stp;
  +  //SyslogTracerPrintWriter stp;
     SyslogQuietWriter sqw;  
     String syslogHost;
     
  @@ -124,7 +126,6 @@
       // A SyslogWriter is UDP based and needs no opening. Hence, it
       // can't be closed. We just unset the variables here.    
       sqw = null;
  -    stp = null;
     }
     
     private
  @@ -250,14 +251,18 @@
   
       sqw.setPriority(event.priority.getSyslogEquivalent());    
       sqw.write(buffer);
  +
  +    String[] s = event.getThrowableStrRep();
  +    if (s != null) {
  +      int len = s.length;
  +      if(len > 0) {
  +	sqw.write(s[0]);
  +      
  +	for(int i = 1; i < len; i++) {
  +	    sqw.write(TAB+s[i].substring(1));
  +	}	
  +      }
   
  - 
  -    if(event.throwable != null) 
  -      event.throwable.printStackTrace(stp);
  -    else {
  -      String tInfo = event.getThrowableInformation();
  -      if (tInfo != null) 
  -	this.sqw.write(tInfo);
       }
     }
   
  @@ -292,7 +297,7 @@
     void setSyslogHost(String syslogHost) {
       this.sqw = new SyslogQuietWriter(new SyslogWriter(syslogHost), 
   				     syslogFacility, errorHandler);
  -    this.stp = new SyslogTracerPrintWriter(sqw);    
  +    //this.stp = new SyslogTracerPrintWriter(sqw);    
       this.syslogHost = syslogHost;
     }
     
  
  
  
  1.5       +1 -2      jakarta-log4j/src/java/org/apache/log4j/net/test/socketServer.lcf
  
  Index: socketServer.lcf
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/net/test/socketServer.lcf,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- socketServer.lcf	2001/01/08 17:55:45	1.4
  +++ socketServer.lcf	2001/03/28 16:30:30	1.5
  @@ -1,8 +1,7 @@
   
   log4j.rootCategory=, A1
   log4j.category.org.apache.log4j.net=DEBUG
  -log4j.appender.A1=org.apache.log4j.FileAppender
  -log4j.appender.A1.File=System.out
  +log4j.appender.A1=org.apache.log4j.ConsoleAppender
   log4j.appender.A1.layout=org.apache.log4j.PatternLayout
   log4j.appender.A1.layout.ConversionPattern=%-5r %-5p [%t] %c{2} %x - %m%n
   
  
  
  
  1.10      +14 -12    jakarta-log4j/src/java/org/apache/log4j/nt/NTEventLogAppender.java
  
  Index: NTEventLogAppender.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/nt/NTEventLogAppender.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- NTEventLogAppender.java	2001/03/19 12:38:20	1.9
  +++ NTEventLogAppender.java	2001/03/28 16:30:30	1.10
  @@ -97,17 +97,19 @@
   
     
     public void append(LoggingEvent event) {
  -    // First, format the log string so we can send it to NT.
  -    StringWriter sw_writer = new StringWriter();
  -    PrintWriter pw_writer = new PrintWriter(sw_writer);
  -    pw_writer.print(layout.format(event));
  -    
  -    // And append a throwable if supplied
  -    if (event.throwable != null) 
  -      event.throwable.printStackTrace(pw_writer);
  -    
  -    pw_writer.close();
  -    
  +
  +    StringBuffer sbuf = new StringBuffer();    
  +
  +    sbuf.append(layout.format(event));
  +    if(layout.ignoresThrowable()) {
  +      String[] s = event.getThrowableStrRep();
  +      if (s != null) {
  +	int len = s.length;
  +	for(int i = 0; i < len; i++) {	
  +	  sbuf.append(s[0]);
  +	}	
  +      }
  +    }
       // Normalize the log message priority into the supported categories
       int nt_category = event.priority.toInt();
   
  @@ -115,7 +117,7 @@
       //if (nt_category > FATAL || nt_category < DEBUG) {
       //  nt_category = INFO;
       //}
  -    reportEvent(_handle, sw_writer.toString(), nt_category);
  +    reportEvent(_handle, sbuf.toString(), nt_category);
     }
     
     
  
  
  
  1.10      +63 -78    jakarta-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java
  
  Index: LoggingEvent.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/spi/LoggingEvent.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- LoggingEvent.java	2001/03/22 18:37:51	1.9
  +++ LoggingEvent.java	2001/03/28 16:30:31	1.10
  @@ -78,19 +78,12 @@
     /** The name of thread in which this logging event was generated. */
     private String threadName;
   
  -  /** The throwable associated with this logging event.
   
  -      This is field is transient because not all exceptions are
  -      serializable. More importantly, the stack information does not
  -      survive serialization.
  +  /** This 
  +      variable contains information about this event's throwable  
     */
  -  transient public final Throwable throwable;
  +  private ThrowableInformation throwableInfo;
   
  -  /** This variable contains the string form of the throwable. This
  -      field will be serialized if need be.  
  -  */
  -  private String throwableInformation;
  -
     /** The number of milliseconds elapsed from 1/1/1970 until logging event
         was created. */
     public final long timeStamp;
  @@ -122,12 +115,28 @@
       this.categoryName = category.getName();
       this.priority = priority;
       this.message = message;
  -    this.throwable = throwable;
  +    if(throwable != null) {
  +      this.throwableInfo = new ThrowableInformation(throwable);
  +    }
  +
       timeStamp = System.currentTimeMillis();
     }  
   
   
     /**
  +     Set the location information for this logging event. The collected
  +     information is cached for future use.
  +   */
  +  public
  +  LocationInfo getLocationInformation() {
  +    if(locationInfo == null) {
  +      locationInfo = new LocationInfo(new Throwable(), fqnOfCategoryClass);
  +    }
  +    return locationInfo;
  +  }
  +
  +
  +  /**
        Return the message for this logging event. 
   
        <p>Before serialization, the returned object is the message
  @@ -161,7 +170,7 @@
   	 renderedMessage = (String) message;
          else {
   	 renderedMessage=
  -                    category.getHierarchy().getRendererMap().findAndRender(message);
  +            category.getHierarchy().getRendererMap().findAndRender(message);
          }
        }
        return renderedMessage;
  @@ -185,65 +194,17 @@
   
   
     /**
  -     Return the throwable's stack trace if any such information is
  -     available.  */
  +     Return this event's throwable's string[] representaion.
  +  */
     public 
  -  String getThrowableInformation() {
  -
  -    if(throwableInformation !=  null)
  -      return throwableInformation;
  +  String[] getThrowableStrRep() {
   
  -    
  -    if(throwable == null) {
  -       return null;
  -    } else {
  -      StringWriter sw = new StringWriter();
  -      PrintWriter pw = new PrintWriter(sw);
  -
  -      throwable.printStackTrace(pw);
  -      throwableInformation = sw.toString();
  -      return throwableInformation;
  -    }
  +    if(throwableInfo ==  null)
  +      return null;
  +    else 
  +      return throwableInfo.getThrowableStrRep();
     }
   	
  -  private
  -  void writeObject(ObjectOutputStream oos) throws java.io.IOException {
  -    // Aside from returning the current thread name the wgetThreadName
  -    // method sets the threadName variable.
  -    this.getThreadName();    
  -
  -    // This sets the renders the message in case it wasn't up to now.
  -    this.getRenderedMessage();
  -
  -    // This call has a side effect of setting this.ndc and
  -    // setting ndcLookupRequired to false if not already false.
  -    this.getNDC();
  -
  -    // This sets the throwableInformation variable to the stack trace
  -    // of the throwable variable.
  -    this.getThrowableInformation();
  -
  -    oos.defaultWriteObject();
  -    
  -    // serialize this event's priority
  -    writePriority(oos);
  -  }
  -
  -  private 
  -  void writePriority(ObjectOutputStream oos) throws java.io.IOException {
  -
  -    oos.writeInt(priority.toInt());
  -
  -    Class clazz = priority.getClass();
  -    if(clazz == Priority.class) {
  -      oos.writeObject(null);
  -    } else {
  -      // writing directly the Class object would be nicer, except that
  -      // serialized a Class object can not be read back by JDK
  -      // 1.1.x. We have to resort to this hack instead.
  -      oos.writeObject(clazz.getName());
  -    }
  -  }
   
     private 
     void readPriority(ObjectInputStream ois) 
  @@ -270,8 +231,6 @@
       }
     }
   
  -
  -
     private void readObject(ObjectInputStream ois)
                           throws java.io.IOException, ClassNotFoundException {
       ois.defaultReadObject();    
  @@ -282,16 +241,42 @@
         locationInfo = new LocationInfo(null, null);
     }
   
  +  private
  +  void writeObject(ObjectOutputStream oos) throws java.io.IOException {
  +    // Aside from returning the current thread name the wgetThreadName
  +    // method sets the threadName variable.
  +    this.getThreadName();    
  +
  +    // This sets the renders the message in case it wasn't up to now.
  +    this.getRenderedMessage();
   
  -  /**
  -     Set the location information for this logging event. The collected
  -     information is cached for future use.
  -   */
  -  public
  -  LocationInfo getLocationInformation() {
  -    if(locationInfo == null) {
  -      locationInfo = new LocationInfo(new Throwable(), fqnOfCategoryClass);
  +    // This call has a side effect of setting this.ndc and
  +    // setting ndcLookupRequired to false if not already false.
  +    this.getNDC();
  +
  +    // This sets the throwable sting representation of the event throwable.
  +    this.getThrowableStrRep();
  +
  +    oos.defaultWriteObject();
  +    
  +    // serialize this event's priority
  +    writePriority(oos);
  +  }
  +
  +  private 
  +  void writePriority(ObjectOutputStream oos) throws java.io.IOException {
  +
  +    oos.writeInt(priority.toInt());
  +
  +    Class clazz = priority.getClass();
  +    if(clazz == Priority.class) {
  +      oos.writeObject(null);
  +    } else {
  +      // writing directly the Class object would be nicer, except that
  +      // serialized a Class object can not be read back by JDK
  +      // 1.1.x. We have to resort to this hack instead.
  +      oos.writeObject(clazz.getName());
       }
  -    return locationInfo;
     }
  +
   }
  
  
  
  1.7       +1 -1      jakarta-log4j/src/java/org/apache/log4j/spi/Makefile
  
  Index: Makefile
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/spi/Makefile,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- Makefile	2001/03/28 12:58:39	1.6
  +++ Makefile	2001/03/28 16:30:32	1.7
  @@ -11,7 +11,7 @@
   	ErrorCode.java\
   	CategoryFactory.java\
   	Configurator.java\
  -        ThrowableStrRep.java\
  +        ThrowableInformation.java\
   	TriggeringEventEvaluator.java\
   
   SUBDIRS := 
  
  
  
  1.2       +30 -10    jakarta-log4j/src/java/org/apache/log4j/test/witness/pattern.15
  
  Index: pattern.15
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/test/witness/pattern.15,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- pattern.15	2001/02/13 21:18:46	1.1
  +++ pattern.15	2001/03/28 16:30:34	1.2
  @@ -91,7 +91,9 @@
   <td>Message 5</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -101,7 +103,9 @@
   <td>Message 5</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -111,7 +115,9 @@
   <td>Message 6</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -121,7 +127,9 @@
   <td>Message 6</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -131,7 +139,9 @@
   <td>Message 7</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -141,7 +151,9 @@
   <td>Message 7</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -151,7 +163,9 @@
   <td>Message 8</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -161,7 +175,9 @@
   <td>Message 8</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -171,7 +187,9 @@
   <td>Message 9</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr>
   
   <tr><td>XXX</td>
   <td>main</td>
  @@ -181,4 +199,6 @@
   <td>Message 9</td>
   </tr>
   <tr><td colspan="7">java.lang.Exception: Just testing
  -<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr></table></body></html>
  \ No newline at end of file
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
  +<br>&nbsp;&nbsp;&nbsp;&nbsp;	at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)
  +</td></tr></table></body></html>
  \ No newline at end of file
  
  
  
  1.11      +5 -3      jakarta-log4j/src/java/org/apache/log4j/xml/XMLLayout.java
  
  Index: XMLLayout.java
  ===================================================================
  RCS file: /home/cvs/jakarta-log4j/src/java/org/apache/log4j/xml/XMLLayout.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- XMLLayout.java	2001/03/19 12:38:22	1.10
  +++ XMLLayout.java	2001/03/28 16:30:36	1.11
  @@ -115,10 +115,12 @@
   	 buf.append("]]></log4j:NDC>\r\n");       
          }
   
  -       String t = event.getThrowableInformation();
  -       if(t != null) {
  +       String[] s = event.getThrowableStrRep();
  +       if(s != null) {
   	 buf.append("<log4j:throwable><![CDATA[");
  -	 buf.append(t);
  +	 for(int i = 0; i < s.length; i++) {
  +	   buf.append(s[i]);
  +	 }
   	 buf.append("]]></log4j:throwable>\r\n");
          }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-cvs-unsubscribe@jakarta.apache.org
For additional commands, e-mail: log4j-cvs-help@jakarta.apache.org