vcrks/a1vb/Y1sa14yzSu7j2yuSz9rW9zsS8/qGjPGJyPgpMb2dnZXLA4NbQ09DSu7j2ss7K/Sx2ZXJib3NpdHks08PAtLHtyr7I1da+tci8tizErMjPzqpFUlJPUqGjPGJyPgogcHVibGljIHN0YXRpYyBmaW5hbCBpbnQgRkFUQUwgPSBJbnRlZ2VyLk1JTl9WQUxVRTs8YnI+CiDU2srks/bI1da+tcTKsbryLNa709C4+LaotcRtZXNzYWdltcR2ZXJib3NpdHnQodPaxKzIz7XEssW74crks/ahozxicj4KINTaQm9vdHN0cmFwxvS2r8DgyejWw0ZpbGVMb2dnZXI8YnI+CjxwcmUgY2xhc3M9"brush:java;"> Bootstrap.java
System.setProperty("catalina.base", System.getProperty("user.dir"));
FileLogger logger = new FileLogger();
logger.setPrefix("FileLog_");
logger.setSuffix(".txt");
logger.setTimestamp(true);
logger.setDirectory("webroot");
context.setLogger(logger);
在使用的時候,調用log(message)即可
private void log(String message) {
Logger logger = connector.getContainer().getLogger();
if (logger != null)
logger.log(threadName + " " + message);
}

我們設定了兩個數組變量,triggers與packageTriggers,這個兩個數組裡面放置不能訪問的類與包。當我們加載一個類的時候提前檢查類名,包名。這裡有一個問題,我們加載類的順序是:
所有加載過的類都要進行緩存,所以首先需要檢查本地緩存。這條看的不是很懂,DirContext也看的不是很明白。
WebLoader.java run方法(部分)
while (!threadDone) {
// Wait for our check interval
threadSleep();
if (!started)
break;
try {
if (!classLoader.modified())
continue;
} catch (Exception e) {
continue;
}
// Handle a need for reloading
notifyContext();
break;
}modified方法會檢查已經載入的類是否被修改,是否修改的表示就是最後修改的時間是否改變!