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ülcü
@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> ";
+
// 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> ";
-
- 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr>
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)<br> at org.apache.log4j.test.PatternTest.main(PatternTest.java:XXX)</td></tr></table></body></html>
\ No newline at end of file
+<br> at org.apache.log4j.test.PatternTest.test(PatternTest.java:XXX)
+<br> 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