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
FileWatchdogTestCase.java
/*
* Copyright 1999,2006 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.watchdog;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import junit.framework.TestCase;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
import org.apache.log4j.util.Compare;
import org.apache.log4j.spi.LoggerRepositoryEx;
import org.apache.log4j.joran.JoranConfigurator;
import org.apache.log4j.Level;
public class FileWatchdogTestCase extends TestCase {
private Logger logger = Logger.getLogger(FileWatchdogTestCase.class);
static String SOURCE_CONFIG = "input/watchdog/watchdog.FileWatchdog";
static String FILE = "output/watchdog.FileWatchdog";
static String WITNESS = "witness/watchdog/watchdog.FileWatchdog";
public FileWatchdogTestCase(String name) {
super(name);
}
private void copyFile(File src, File dst) throws Exception {
if (dst.exists()) {
assertTrue(dst.delete());
}
FileOutputStream out = new FileOutputStream(dst);
FileInputStream in = new FileInputStream(src);
byte[] buffer = new byte[1024];
int size;
do {
size = in.read(buffer);
if (size > 0) out.write(buffer,0,size);
} while (size > 0);
try {
in.close();
} catch (Exception e) {
// don't care
}
try {
out.close();
} catch (Exception e) {
// don't care
}
}
private String getSourceXMLConfigFile(String caseName, int index) {
return SOURCE_CONFIG + "." + caseName + "_" + index + ".xml";
}
private String getXMLConfigFile(String caseName) {
return FILE + "." + caseName + ".xml";
}
private String getSourceConfigFile(String caseName, int index) {
return SOURCE_CONFIG + "." + caseName + "_" + index + ".properties";
}
private String getConfigFile(String caseName) {
return FILE + "." + caseName + ".properties";
}
private String getOutputFile(String caseName) {
return FILE + "." + caseName + ".txt";
}
private String getWitnessFile(String caseName) {
return WITNESS + "." + caseName + ".txt";
}
// basic test of plugin in standalone mode
public void test1() throws Exception {
File outFile = new File(getOutputFile("test1"));
if (outFile.exists()) {
assertTrue(outFile.delete());
}
// set up the needed file references
File sourceFile1 = new File(getSourceXMLConfigFile("test1", 1));
File sourceFile2 = new File(getSourceXMLConfigFile("test1", 2));
assertTrue(sourceFile1.exists());
assertTrue(sourceFile2.exists());
File configFile = new File(getXMLConfigFile("test1"));
// move the first config file into place
copyFile(sourceFile1, configFile);
assertTrue(configFile.exists());
// configure environment to first config file
JoranConfigurator configurator = new JoranConfigurator();
configurator.doConfigure(configFile.getAbsolutePath(),
LogManager.getLoggerRepository());
// now watch the file for changes
FileWatchdog watchdog = new FileWatchdog();
watchdog.setFile(configFile.getAbsolutePath());
watchdog.setInterval(1000);
watchdog.setConfigurator(JoranConfigurator.class.getName());
((LoggerRepositoryEx) LogManager.getLoggerRepository()).getPluginRegistry().addPlugin(watchdog);
watchdog.activateOptions();
// output some test messages
logger.debug("debug message");
logger.info("info message");
logger.warn("warn message");
logger.error("error message");
logger.fatal("fatal message");
Thread.sleep(2000);
// copy over a new version of the config file
copyFile(sourceFile2, configFile);
// wait a few seconds for the watchdog to react
for (int i = 0; i < 40; i++) {
Thread.sleep(500);
if (logger.getLevel() == Level.INFO) {
// output some test messages
logger.debug("debug message");
logger.info("info message");
logger.warn("warn message");
logger.error("error message");
logger.fatal("fatal message");
assertTrue(Compare.compare(getOutputFile("test1"),
getWitnessFile("test1")));
return;
}
}
fail("Expected change in level did not occur within 20 seconds.");
}
// basic test of plugin in standalone mode with PropertyConfigurator
public void test2() throws Exception {
File outFile = new File(getOutputFile("test2"));
if (outFile.exists()) {
assertTrue(outFile.delete());
}
// set up the needed file references
File sourceFile1 = new File(getSourceConfigFile("test2", 1));
File sourceFile2 = new File(getSourceConfigFile("test2", 2));
assertTrue(sourceFile1.exists());
assertTrue(sourceFile2.exists());
File configFile = new File(getConfigFile("test2"));
// move the first config file into place
copyFile(sourceFile1, configFile);
assertTrue(configFile.exists());
// configure environment to first config file
PropertyConfigurator configurator = new PropertyConfigurator();
configurator.doConfigure(configFile.getAbsolutePath(),
LogManager.getLoggerRepository());
// now watch the file for changes
FileWatchdog watchdog = new FileWatchdog();
watchdog.setFile(configFile.getAbsolutePath());
watchdog.setInterval(1000);
watchdog.setConfigurator(PropertyConfigurator.class.getName());
((LoggerRepositoryEx) LogManager.getLoggerRepository()).getPluginRegistry().addPlugin(watchdog);
watchdog.activateOptions();
// output some test messages
logger.debug("debug message");
logger.info("info message");
logger.warn("warn message");
logger.error("error message");
logger.fatal("fatal message");
Thread.sleep(2000);
// copy over a new version of the config file
copyFile(sourceFile2, configFile);
// wait a few seconds for the watchdog to react
for (int i = 0; i < 40; i++) {
Thread.sleep(500);
if (logger.getLevel() == Level.INFO) {
// output some test messages
logger.debug("debug message");
logger.info("info message");
logger.warn("warn message");
logger.error("error message");
logger.fatal("fatal message");
assertTrue(Compare.compare(getOutputFile("test2"),
getWitnessFile("test2")));
return;
}
}
fail("Expected change in level did not occur within 20 seconds.");
}
}