The version of Apache log4j used by SoundHelix.
Clone
HTTPS:
git clone https://vervis.peers.community/repos/aEp6o
SSH:
git clone USERNAME@vervis.peers.community:aEp6o
Branches
Tags
- 1.3alpha-7
- CHAINSAW_2_SANDBOX_MERGE
- CORE_VERSION
- LEVEL_REPLACES_PRIORITY
- PREALPHA_1_3_AS_OF_2004_05_12
- PRE_CHAINSAW_MODEL_CONVERSION
- PRE_UGLI_MOVE
- TAG_CHAINSAW2_MOVE
- log4j-1.2.17
- log4j-1.2.17-rc1
- v1.3alpha8
- v1.3alpha8-temp
- v1_2_1
- v1_2_10-recalled
- v1_2_11
- v1_2_11_rc1
- v1_2_11rc3
- v1_2_12
- v1_2_12_rc1
- v1_2_12_rc2
- v1_2_12_rc3
- v1_2_12_rc4
- v1_2_12_rc5
- v1_2_12_rc6
- v1_2_13
- v1_2_13_rc1
- v1_2_13_rc2
- v1_2_13_site_update
- v1_2_14
- v1_2_14_maven
- v1_2_14_rc1
- v1_2_14_site_update
- v1_2_15
- v1_2_15_rc1
- v1_2_15_rc2
- v1_2_15_rc3
- v1_2_15_rc4
- v1_2_15_rc5
- v1_2_15_rc6
- v1_2_16
- v1_2_16_rc1
- v1_2_16_rc2
- v1_2_17
- v1_2_17-rc1
- v1_2_17_rc1
- v1_2_17_rc2
- v1_2_17_rc3
- v1_2_2
- v1_2_3
- v1_2_4
- v1_2_6
- v1_2_7
- v1_2_9
- v1_2_alpha0
- v1_2_alpha7
- v1_2beta1
- v1_2final
- v1_3alpha_1
- v1_3alpha_6
- v_1_0
- v_1_0_1
- v_1_0_4
- v_1_1
- v_1_1_1
- v_1_1_2
- v_1_1_3
- v_1_1_b1
- v_1_1b2
- v_1_1b3
- v_1_1b5
- v_1_1b6
- v_1_1b7
- v_1_2beta3
DOMTest.java
/*
* 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.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.log4j.xml;
import junit.framework.TestCase;
import org.apache.log4j.Level;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.joran.JoranConfigurator;
import org.apache.log4j.spi.ErrorItem;
import org.apache.log4j.util.*;
import java.io.File;
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;
Logger logger;
public DOMTest(String name) {
super(name);
}
public void setUp() {
root = Logger.getRootLogger();
logger = Logger.getLogger(DOMTest.class);
}
public void tearDown() {
root.getLoggerRepository().resetConfiguration();
}
public void test1() throws Exception {
//org.apache.log4j.BasicConfigurator.configure();
JoranConfigurator jc = new JoranConfigurator();
jc.doConfigure("input/xml/DOMTest1.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, 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"));
}
/**
* Identical test except that backslashes are used instead of
* 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 + ".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);
factory.setValidating(false);
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"));
}
/**
* Tests processing of external entities in XML file.
*/
public void test4() throws Exception {
//org.apache.log4j.BasicConfigurator.configure();
JoranConfigurator jc = new JoranConfigurator();
jc.doConfigure("input/xml/DOMTest4.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 + ".4", FILTERED_A1 + ".4",
new Filter[] {
cf1, new LineNumberFilter(), new SunReflectFilter(),
new JunitTestRunnerFilter()
});
Transformer.transform(
TEMP_A2 + ".4", FILTERED_A2 + ".4",
new Filter[] {
cf2, new LineNumberFilter(), new ISO8601Filter(),
new SunReflectFilter(), new JunitTestRunnerFilter()
});
assertTrue(Compare.compare(FILTERED_A1 + ".4", "witness/xml/dom.A1.4"));
assertTrue(Compare.compare(FILTERED_A2 + ".4", "witness/xml/dom.A2.4"));
}
void common() {
int i = -1;
logger.debug("Message " + ++i);
root.debug("Message " + i);
logger.info("Message " + ++i);
root.info("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);
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);
}
void dumpErrors(List errorList) {
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) {
t.printStackTrace(System.out);
}
}
}
}