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
TimedLocationWatchdog.java
package org.apache.log4j.watchdog;
import org.apache.log4j.scheduler.Job;
import org.apache.log4j.spi.LoggerRepository;
import org.apache.log4j.spi.LoggerRepositoryEx;
/**
* Implements functionality of a watchdog that periodically checks a location
* for updated configuration data.
*
* This class can be used as the base class for any Watchdog that needs to
* watch a single location (File or URL) for changes. Subclasses must implement
* the getModificationTime method to return the current modification time of the
* watched source, since this can be source specific. When a change in
* modification time is detected, the log4j environment will be reconfigured,
* using the location as the source for the new configuration data. Subclasses
* must implement the reconfigure method to use the specific source for
* reconfiguration.
*
* The location will be checked peridoically. This period of time is defined
* by the <code>interval</code> property.
*
* @author Mark Womack <mwomack@apache.org>
* @since 1.3
*/
public abstract class TimedLocationWatchdog extends WatchdogSkeleton
implements Job {
/** Default interval of time between checks, in milliseconds. */
public static long DEFAULT_INTERVAL = 60000;
/** The interval of time between checks. */
protected long interval = DEFAULT_INTERVAL;
/** The last time the location was modified. */
private long lastModTime = -1;
/**
* Sets the interval of time, in milliseconds, between checks on the
* location.
*
* @param interval An interval of time, in milliseconds.
*/
public void setInterval(long interval) {
this.interval = interval;
}
/**
* Returns the interval of time, in milliseconds, between checks on the
* location.
*
* @return An interval of time, in milliseconds.
*/
public long getInterval() {
return interval;
}
/**
* Returns the current modification time for the watched location. Subclasses
* must implement specifically for the type of source they are watching.
*
* @return The current modification time of the location.
*/
public abstract long getModificationTime();
/**
* Implements the Job interface for the Scheduler. When this method is called
* by the Scheduler it checks the current modification time of the watched
* source with the last recorded modification time. If the modification times
* are different, then the log4j environment is reconfigured using the
* watched source for the configuration data.
*/
public void execute() {
long newModTime = getModificationTime();
if (lastModTime != newModTime) {
reconfigure();
lastModTime = newModTime;
}
}
/**
* Called to activate the watchdog and start the watching of the source.
*/
public void activateOptions() {
// get the current modification time of the watched source
lastModTime = getModificationTime();
LoggerRepository repo = getLoggerRepository();
if (repo instanceof LoggerRepositoryEx) {
((LoggerRepositoryEx) repo).getScheduler().schedule(this,
System.currentTimeMillis() + interval, interval);
} else {
this.getLogger().error("{} watchdog requires repository that supports LoggerRepositoryEx",
this.getName());
}
}
/**
* Shutdown this watchdog. Since implemented as a scheduled Job, this method
* simply removes the watchdog from the Scheduler.
*/
public void shutdown() {
LoggerRepository repo = getLoggerRepository();
if (repo instanceof LoggerRepositoryEx) {
((LoggerRepositoryEx) repo).getScheduler().delete(this);
}
}
}