Jon,
Here is what I found, I hope this helps:
/*
* Copyright (C) The Apache Software Foundation. All rights reserved.
*
* This software is published under the terms of the Apache Software License
* version 1.1, a copy of which has been included with this distribution in
* the LICENSE file.
*/
// Contributors: Mathias Bogaert
package org.apache.log4j.helpers;
import java.io.File;
import org.apache.log4j.helpers.LogLog;
/**
Check every now and then that a certain file has not changed. If it
has, then call the [EMAIL PROTECTED] #doOnChange} method.
@author Ceki Gülcü
@since version 0.9.1 */
public abstract class FileWatchdog extends Thread {
/**
The default delay between every file modification check, set to 60
seconds. */
static final public long DEFAULT_DELAY = 60000;
/**
The name of the file to observe for changes.
*/
protected String filename;
/**
The delay to observe between every check. By default set [EMAIL PROTECTED]
#DEFAULT_DELAY}. */
protected long delay = DEFAULT_DELAY;
File file;
long lastModif = 0;
boolean warnedAlready = false;
boolean interrupted = false;
protected
FileWatchdog(String filename) {
this.filename = filename;
file = new File(filename);
setDaemon(true);
checkAndConfigure();
}
/**
Set the delay to observe between each check of the file changes.
*/
public
void setDelay(long delay) {
this.delay = delay;
}
abstract
protected
void doOnChange();
protected
void checkAndConfigure() {
boolean fileExists;
try {
fileExists = file.exists();
} catch(SecurityException e) {
LogLog.warn("Was not allowed to read check file existance, file:["+
filename+"].");
interrupted = true; // there is no point in continuing
return;
}
if(fileExists) {
long l = file.lastModified(); // this can also throw a
SecurityException
if(l > lastModif) { // however, if we reached this point
this
lastModif = l; // is very unlikely.
doOnChange();
warnedAlready = false;
}
} else {
if(!warnedAlready) {
LogLog.debug("["+filename+"] does not exist.");
warnedAlready = true;
}
}
}
public
void run() {
while(!interrupted) {
try {
Thread.currentThread().sleep(delay);
} catch(InterruptedException e) {
// no interruption expected
}
checkAndConfigure();
}
}
}
-----Original Message-----
From: Jon Wilmoth [mailto:[EMAIL PROTECTED]
Sent: Monday, January 23, 2006 12:59 PM
To: Log4J Users List
Subject: Configuring Watchdogs in 1.3?
How does one configure the new version of log4j to look for changes to
the config file itself? If someone has an example xml config showing
either a FileWatchdog or a HttpWatchdog, it would be greatly
appreciated!
Thanks,
Jon
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]