in src/main/java/org/apache/log4j/receivers/varia/LogFilePatternReceiver.java [982:1032]
public void activateOptions() {
getLogger().info("activateOptions");
active = true;
Runnable runnable = new Runnable() {
public void run() {
initialize();
while (reader == null) {
getLogger().info("attempting to load file: " + getFileURL());
try {
reader = new InputStreamReader(new URL(getFileURL()).openStream());
} catch (FileNotFoundException fnfe) {
getLogger().info("file not available - will try again");
synchronized (this) {
try {
wait(MISSING_FILE_RETRY_MILLIS);
} catch (InterruptedException ie) {}
}
} catch (IOException ioe) {
getLogger().warn("unable to load file", ioe);
return;
}
}
try {
BufferedReader bufferedReader = new BufferedReader(reader);
createPattern();
do {
process(bufferedReader);
try {
synchronized (this) {
wait(waitMillis);
}
} catch (InterruptedException ie) {}
if (tailing) {
getLogger().debug("tailing file");
}
} while (tailing);
} catch (IOException ioe) {
//io exception - probably shut down
getLogger().info("stream closed");
}
getLogger().debug("processing " + path + " complete");
shutdown();
}
};
if(useCurrentThread) {
runnable.run();
}else {
new Thread(runnable, "LogFilePatternReceiver-"+getName()).start();
}
}