Do you think it is wise to go into all this trouble?
At 06:35 AM 3/7/2005, [EMAIL PROTECTED] wrote:
carnold 2005/03/06 21:35:19
Modified: src/java/org/apache/log4j/xml DOMConfigurator.java tests/src/java/org/apache/log4j/xml DOMTest.java Added: tests/input/xml DOMTest3.xml tests/witness/xml dom.A1.3 dom.A2.3 Log: Bug 33870: Restore DOMConfigurator.doConfigure(Element)
Revision Changes Path
1.73 +125 -8 logging-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java
Index: DOMConfigurator.java
===================================================================
RCS file: /home/cvs/logging-log4j/src/java/org/apache/log4j/xml/DOMConfigurator.java,v
retrieving revision 1.72
retrieving revision 1.73
diff -u -r1.72 -r1.73
--- DOMConfigurator.java 9 Jan 2005 13:04:17 -0000 1.72
+++ DOMConfigurator.java 7 Mar 2005 05:35:18 -0000 1.73
@@ -1,12 +1,12 @@
/*
- * Copyright 1999,2004 The Apache Software Foundation.
- *
+ * Copyright 1999,2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,14 +16,26 @@
package org.apache.log4j.xml;
+import org.apache.log4j.LogManager; +import org.apache.log4j.joran.JoranConfigurator; +import org.apache.log4j.spi.LoggerRepository; + +import org.w3c.dom.Element; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; + +import org.xml.sax.SAXException; +import org.xml.sax.helpers.AttributesImpl; +import org.xml.sax.helpers.DefaultHandler; + import java.net.URL;
-import org.apache.log4j.*; -import org.apache.log4j.joran.JoranConfigurator; +import javax.xml.parsers.SAXParser;
// Contributors: Mark Womack -// Arun Katkere +// Arun Katkere +// Curt Arnold
/**
Use this class to initialize the log4j environment using a DOM tree.
@@ -50,7 +62,6 @@
@deprecated Replaced by the much more flexible [EMAIL PROTECTED] org.apache.log4j.joran.JoranConfigurator}.
@since 0.8.3 */
public class DOMConfigurator extends JoranConfigurator {
-
public static void configure(String file) {
JoranConfigurator joran = new JoranConfigurator();
joran.doConfigure(file, LogManager.getLoggerRepository());
@@ -60,4 +71,110 @@
JoranConfigurator joran = new JoranConfigurator();
joran.doConfigure(url, LogManager.getLoggerRepository());
}
+
+ /**
+ * Configure log4j using a <code>configuration</code> element.
+ * @param element element, may not be null.
+ */
+ public static void configure(final Element element) {
+ DOMConfigurator configurator = new DOMConfigurator();
+ configurator.doConfigure(element, LogManager.getLoggerRepository());
+ }
+
+ /**
+ * Configure by taking in an DOM element.
+ * @param element configuration element, may not be null.
+ * @param repository logger repository.
+ */
+ public void doConfigure(
+ final Element element, final LoggerRepository repository) {
+ ParseAction action = new DOMElementParseAction(element);
+ doConfigure(action, repository);
+ }
+
+ /**
+ * Class that "parses" a DOM element by replaying the
+ * corresponding SAX events.
+ */
+ private static class DOMElementParseAction implements ParseAction {
+ private final Element element;
+ private final AttributesImpl attributes = new AttributesImpl();
+
+ /**
+ * Creates an DOMElementParser.
+ * @param element configuration element.
+ */
+ public DOMElementParseAction(final Element element) {
+ this.element = element;
+ }
+
+ /**
+ * Generates the SAX events corresponding to the document element.
+ * @param parser SAX parser, ignored.
+ * @param handler content receiver, may not be null.
+ * @throws SAXException thrown on content or handling exception.
+ */
+ public void parse(final SAXParser parser, final DefaultHandler handler)
+ throws SAXException {
+ handler.startDocument();
+ replay(element, handler);
+ handler.endDocument();
+ }
+
+ /**
+ * Generates the SAX events corresponding to the element.
+ *
+ * @param element element, may not be null.
+ * @param handler content handler, may not be null.
+ * @throws SAXException if content error.
+ */
+ private void replay(final Element element, final DefaultHandler handler)
+ throws SAXException {
+ String localName = element.getLocalName();
+ String nsURI = element.getNamespaceURI();
+ String qName = element.getNodeName();
+
+ if (localName == null) {
+ localName = qName;
+ }
+
+ attributes.clear();
+
+ NamedNodeMap attrNodes = element.getAttributes();
+ int attrCount = attrNodes.getLength();
+ Node attr;
+
+ for (int i = 0; i < attrCount; i++) {
+ attr = attrNodes.item(i);
+
+ String attrQName = attr.getNodeName();
+ String attrName = attr.getLocalName();
+
+ if (attrName == null) {
+ attrName = attrQName;
+ }
+
+ String attrNsURI = attr.getNamespaceURI();
+ String attrValue = attr.getNodeValue();
+ attributes.addAttribute(
+ attrNsURI, attrName, attrQName, "#PCDATA", attrValue);
+ }
+
+ handler.startElement(nsURI, localName, qName, attributes);
+
+ for (
+ Node child = element.getFirstChild(); child != null;
+ child = child.getNextSibling()) {
+ //
+ // Joran only inteprets element content,
+ // so unnecessary to playback comments, character data, etc.
+ //
+ if (child.getNodeType() == Node.ELEMENT_NODE) {
+ replay((Element) child, handler);
+ }
+ }
+
+ handler.endElement(nsURI, localName, qName);
+ }
+ }
}
1.1 logging-log4j/tests/input/xml/DOMTest3.xml
Index: DOMTest3.xml =================================================================== <?xml version="1.0" encoding="UTF-8" ?>
<log4j:configuration xmlns:log4j='http://logging.apache.org/'> <appender name="A1" class="org.apache.log4j.FileAppender">
<param name="File" value="output/temp.A1.3" /> <param name="Append" value="false" />
<layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%-5p %c{2} - %m%n"/> </layout> </appender>
<appender name="A2" class="org.apache.log4j.FileAppender"> <param name="File" value="output/temp.A2.3" /> <param name="Append" value="false" /> <layout class="org.apache.log4j.TTCCLayout"> <param name="DateFormat" value="ISO8601" /> </layout> </appender>
<!-- Prevent internal log4j DEBUG messages from polluting the output. -->
<logger name="org.apache.log4j.joran"><level value="INFO" /></logger>
<logger name="org.apache.log4j.joran.action.PriorityAction"><level value="ERROR" /></logger>
<logger name="org.apache.log4j.config"><level value="INFO" /></logger>
<logger name="org.apache.log4j.FileAppender"><level value="INFO" /></logger>
<logger name="org.apache.log4j.xml.DOMConfigurator"><level value="INFO" /></logger>
<logger name="org.apache.log4j.xml"> <level value="debug" /> <appender-ref ref="A1" /> </logger>
<root> <priority value ="debug" /> <appender-ref ref="A1" /> <appender-ref ref="A2" /> </root>
</log4j:configuration>
1.2 +150 -99 logging-log4j/tests/src/java/org/apache/log4j/xml/DOMTest.java
Index: DOMTest.java
===================================================================
RCS file: /home/cvs/logging-log4j/tests/src/java/org/apache/log4j/xml/DOMTest.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DOMTest.java 18 Feb 2005 17:23:45 -0000 1.1
+++ DOMTest.java 7 Mar 2005 05:35:19 -0000 1.2
@@ -1,12 +1,12 @@
/*
- * Copyright 1999-2005 The Apache Software Foundation.
- *
+ * Copyright 1999,2005 The Apache Software Foundation.
+ *
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
- *
+ *
* http://www.apache.org/licenses/LICENSE-2.0
- *
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -16,50 +16,39 @@
package org.apache.log4j.xml;
-import java.util.List; - -import junit.framework.Test; import junit.framework.TestCase; -import junit.framework.TestSuite;
+import org.apache.log4j.Level; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; -import org.apache.log4j.Level; import org.apache.log4j.joran.JoranConfigurator; import org.apache.log4j.spi.ErrorItem; -import org.apache.log4j.util.Filter; -import org.apache.log4j.util.JunitTestRunnerFilter; -import org.apache.log4j.util.LineNumberFilter; -import org.apache.log4j.util.SunReflectFilter; -import org.apache.log4j.util.ControlFilter; -import org.apache.log4j.util.ISO8601Filter; -import org.apache.log4j.util.Transformer; -import org.apache.log4j.util.Compare; +import org.apache.log4j.util.*; + import java.io.File;
-public class DOMTest extends TestCase { +import java.util.List; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +
+public class DOMTest extends TestCase {
static String TEMP_A1 = "output/temp.A1";
static String TEMP_A2 = "output/temp.A2";
static String FILTERED_A1 = "output/filtered.A1";
static String FILTERED_A2 = "output/filtered.A2";
-
-
static String EXCEPTION1 = "java.lang.Exception: Just testing";
static String EXCEPTION2 = "\\s*at .*\\(.*:\\d{1,4}\\)";
static String EXCEPTION3 = "\\s*at .*\\(Native Method\\)";
-
- static String TEST1_1A_PAT =
- "(DEBUG|INFO |WARN |ERROR|FATAL) \\w*\\.\\w* - Message \\d";
-
- static String TEST1_1B_PAT = "(DEBUG|INFO |WARN |ERROR|FATAL) root - Message \\d";
-
- static String TEST1_2_PAT = "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3} "+
- "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d";
-
-
-
- Logger root;
+ static String TEST1_1A_PAT =
+ "(DEBUG|INFO |WARN |ERROR|FATAL) \\w*\\.\\w* - Message \\d";
+ static String TEST1_1B_PAT =
+ "(DEBUG|INFO |WARN |ERROR|FATAL) root - Message \\d";
+ static String TEST1_2_PAT =
+ "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2},\\d{3} "
+ + "\\[main]\\ (DEBUG|INFO|WARN|ERROR|FATAL) .* - Message \\d";
+ Logger root;
Logger logger;
public DOMTest(String name) { @@ -70,8 +59,8 @@ root = Logger.getRootLogger(); logger = Logger.getLogger(DOMTest.class); } - - public void tearDown() { + + public void tearDown() { root.getLoggerRepository().resetConfiguration(); }
@@ -82,20 +71,29 @@ dumpErrors(jc.getErrorList()); common();
- ControlFilter cf1 = new ControlFilter(new String[]{TEST1_1A_PAT, TEST1_1B_PAT,
- EXCEPTION1, EXCEPTION2, EXCEPTION3});
-
- ControlFilter cf2 = new ControlFilter(new String[]{TEST1_2_PAT,
- EXCEPTION1, EXCEPTION2, EXCEPTION3});
-
- Transformer.transform(TEMP_A1, FILTERED_A1, new Filter[] {cf1,
- new LineNumberFilter(),
- new SunReflectFilter(),
- new JunitTestRunnerFilter()});
-
- Transformer.transform(TEMP_A2, FILTERED_A2, new Filter[] {cf2,
- new LineNumberFilter(), new ISO8601Filter(),
- new SunReflectFilter(), new JunitTestRunnerFilter()});
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] {
+ TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
+ });
+
+ ControlFilter cf2 =
+ new ControlFilter(
+ new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+
+ Transformer.transform(
+ TEMP_A1, FILTERED_A1,
+ new Filter[] {
+ cf1, new LineNumberFilter(), new SunReflectFilter(),
+ new JunitTestRunnerFilter()
+ });
+
+ Transformer.transform(
+ TEMP_A2, FILTERED_A2,
+ new Filter[] {
+ cf2, new LineNumberFilter(), new ISO8601Filter(),
+ new SunReflectFilter(), new JunitTestRunnerFilter()
+ });
assertTrue(Compare.compare(FILTERED_A1, "witness/xml/dom.A1.1")); assertTrue(Compare.compare(FILTERED_A2, "witness/xml/dom.A2.1")); @@ -103,82 +101,135 @@
/**
* Identical test except that backslashes are used instead of
- * forward slashes on all file specifications. Test is
+ * forward slashes on all file specifications. Test is
* only applicable to Windows.
- *
+ *
* @throws Exception Any exception will cause test to fail
*/
public void test2() throws Exception {
- if (File.separatorChar == '\\') {
- JoranConfigurator jc = new JoranConfigurator();
- jc.doConfigure("input\\xml\\DOMTest2.xml", LogManager.getLoggerRepository());
- dumpErrors(jc.getErrorList());
- common();
-
- ControlFilter cf1 = new ControlFilter(new String[]{TEST1_1A_PAT, TEST1_1B_PAT,
- EXCEPTION1, EXCEPTION2, EXCEPTION3});
-
- ControlFilter cf2 = new ControlFilter(new String[]{TEST1_2_PAT,
- EXCEPTION1, EXCEPTION2, EXCEPTION3});
-
- Transformer.transform(TEMP_A1 + ".2", FILTERED_A1 + ".2", new Filter[] {cf1,
- new LineNumberFilter(),
- new SunReflectFilter(),
- new JunitTestRunnerFilter()});
-
- Transformer.transform(TEMP_A2 + ".2", FILTERED_A2 + ".2", new Filter[] {cf2,
- new LineNumberFilter(), new ISO8601Filter(),
- new SunReflectFilter(), new JunitTestRunnerFilter()});
-
- assertTrue(Compare.compare(FILTERED_A1, "witness/xml/dom.A1.2"));
- assertTrue(Compare.compare(FILTERED_A2, "witness/xml/dom.A2.2"));
- }
- }
-
-
-
+ if (File.separatorChar == '\\') {
+ JoranConfigurator jc = new JoranConfigurator();
+ jc.doConfigure(
+ "input\\xml\\DOMTest2.xml", LogManager.getLoggerRepository());
+ dumpErrors(jc.getErrorList());
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] {
+ TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
+ });
+
+ ControlFilter cf2 =
+ new ControlFilter(
+ new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+
+ Transformer.transform(
+ TEMP_A1 + ".2", FILTERED_A1 + ".2",
+ new Filter[] {
+ cf1, new LineNumberFilter(), new SunReflectFilter(),
+ new JunitTestRunnerFilter()
+ });
+
+ Transformer.transform(
+ TEMP_A2 + ".2", FILTERED_A2 + ".2",
+ new Filter[] {
+ cf2, new LineNumberFilter(), new ISO8601Filter(),
+ new SunReflectFilter(), new JunitTestRunnerFilter()
+ });
+
+ assertTrue(Compare.compare(FILTERED_A1 + ".2", "witness/xml/dom.A1.2"));
+ assertTrue(Compare.compare(FILTERED_A2 + ".2", "witness/xml/dom.A2.2"));
+ }
+ }
+
+ /**
+ * This test checks the implementation of DOMConfigurator.doConfigure(Element)
+ * which is provided for compatibility with log4j 1.2 and used by excalibur-logging.
+ *
+ * @deprecated This test checks a deprecated method and so needs to be deprecated itself.
+ *
+ * @throws Exception on failure to find parser, etc.
+ */
+ public void test3() throws Exception {
+ DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+ factory.setNamespaceAware(true);
+
+ DocumentBuilder builder = factory.newDocumentBuilder();
+ org.w3c.dom.Document doc =
+ builder.parse(new File("input/xml/DOMTest3.xml"));
+
+ DOMConfigurator domConfig = new DOMConfigurator();
+ domConfig.doConfigure(
+ doc.getDocumentElement(), LogManager.getLoggerRepository());
+
+ dumpErrors(domConfig.getErrorList());
+ common();
+
+ ControlFilter cf1 =
+ new ControlFilter(
+ new String[] {
+ TEST1_1A_PAT, TEST1_1B_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3
+ });
+
+ ControlFilter cf2 =
+ new ControlFilter(
+ new String[] { TEST1_2_PAT, EXCEPTION1, EXCEPTION2, EXCEPTION3 });
+
+ Transformer.transform(
+ TEMP_A1 + ".3", FILTERED_A1 + ".3",
+ new Filter[] {
+ cf1, new LineNumberFilter(), new SunReflectFilter(),
+ new JunitTestRunnerFilter()
+ });
+
+ Transformer.transform(
+ TEMP_A2 + ".3", FILTERED_A2 + ".3",
+ new Filter[] {
+ cf2, new LineNumberFilter(), new ISO8601Filter(),
+ new SunReflectFilter(), new JunitTestRunnerFilter()
+ });
+
+ assertTrue(Compare.compare(FILTERED_A1 + ".3", "witness/xml/dom.A1.3"));
+ assertTrue(Compare.compare(FILTERED_A2 + ".3", "witness/xml/dom.A2.3"));
+ }
+
void common() {
int i = -1;
-
+
logger.debug("Message " + ++i);
- root.debug("Message " + i);
+ root.debug("Message " + i);
- logger.info ("Message " + ++i); - root.info("Message " + i); + logger.info("Message " + ++i); + root.info("Message " + i);
- logger.warn ("Message " + ++i); - root.warn("Message " + i); + logger.warn("Message " + ++i); + root.warn("Message " + i);
logger.error("Message " + ++i); root.error("Message " + i); - + logger.log(Level.FATAL, "Message " + ++i); - root.log(Level.FATAL, "Message " + i); - + root.log(Level.FATAL, "Message " + i); + Exception e = new Exception("Just testing"); logger.debug("Message " + ++i, e); root.debug("Message " + i, e); - + logger.error("Message " + ++i, e); - root.error("Message " + i, e); + root.error("Message " + i, e); }
void dumpErrors(List errorList) { - for(int i = 0; i < errorList.size(); i++) { + for (int i = 0; i < errorList.size(); i++) { ErrorItem ei = (ErrorItem) errorList.get(i); System.out.println(ei); + Throwable t = ei.getException(); - if(t != null) { + + if (t != null) { t.printStackTrace(System.out); } } } - - public static Test suite() { - TestSuite suite = new TestSuite(); - suite.addTest(new DOMTest("test1")); - //suite.addTest(new DOMTest("test2")); - return suite; - } - }
1.1 logging-log4j/tests/witness/xml/dom.A1.3
Index: dom.A1.3 =================================================================== DEBUG xml.DOMTest - Message 0 DEBUG xml.DOMTest - Message 0 DEBUG root - Message 0 INFO xml.DOMTest - Message 1 INFO xml.DOMTest - Message 1 INFO root - Message 1 WARN xml.DOMTest - Message 2 WARN xml.DOMTest - Message 2 WARN root - Message 2 ERROR xml.DOMTest - Message 3 ERROR xml.DOMTest - Message 3 ERROR root - Message 3 FATAL xml.DOMTest - Message 4 FATAL xml.DOMTest - Message 4 FATAL root - Message 4 DEBUG xml.DOMTest - Message 5 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) DEBUG xml.DOMTest - Message 5 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) DEBUG root - Message 5 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) ERROR xml.DOMTest - Message 6 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) ERROR xml.DOMTest - Message 6 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) ERROR root - Message 6 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X)
1.1 logging-log4j/tests/witness/xml/dom.A2.3
Index: dom.A2.3 =================================================================== [main] DEBUG org.apache.log4j.xml.DOMTest - Message 0 [main] DEBUG root - Message 0 [main] INFO org.apache.log4j.xml.DOMTest - Message 1 [main] INFO root - Message 1 [main] WARN org.apache.log4j.xml.DOMTest - Message 2 [main] WARN root - Message 2 [main] ERROR org.apache.log4j.xml.DOMTest - Message 3 [main] ERROR root - Message 3 [main] FATAL org.apache.log4j.xml.DOMTest - Message 4 [main] FATAL root - Message 4 [main] DEBUG org.apache.log4j.xml.DOMTest - Message 5 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) [main] DEBUG root - Message 5 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) [main] ERROR org.apache.log4j.xml.DOMTest - Message 6 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X) [main] ERROR root - Message 6 java.lang.Exception: Just testing at org.apache.log4j.xml.DOMTest.common(X) at org.apache.log4j.xml.DOMTest.test3(X) at java.lang.reflect.Method.invoke(X) at junit.framework.TestCase.runTest(X) at junit.framework.TestCase.runBare(X) at junit.framework.TestResult$1.protect(X) at junit.framework.TestResult.runProtected(X) at junit.framework.TestResult.run(X) at junit.framework.TestCase.run(X) at junit.framework.TestSuite.runTest(X) at junit.framework.TestSuite.run(X)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- Ceki G�lc�
The complete log4j manual: http://www.qos.ch/log4j/
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
