<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 110, comments - 101, trackbacks - 0, articles - 7
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
    用java寫服務程序時經常會涉及到監控某些配置文件,當配置文件發生變化時實時重新加載該文件的內容到內存.
    實際上log4j里有現成的類FileWatchdog做了類似的工作.我們只需繼承它,然后重寫它的一些方法就可以了.
     
       /**使用log4j的監控狗 */
        
    public class IPAccessFileWatchdog extends FileWatchdog {
            
    public IPAccessFileWatchdog(String filename){
                
    super(filename);
            }


            
    public void doOnChange() {
                List
    <String> list = IPAccessController.this.loadIPRule(new File(this.filename));
                
    if (list != null{
                    IPAccessController.
    this.ipRule = list.toArray(new String[list.size()]);
                }
     else {
                    IPAccessController.
    this.ipRule = null;
                }

                LogLog.warn(
    "ip access config load completed from file:" + filename);
            }

        }

    }


    FileWatchdog的代碼也很簡單,其實就是起一個線程,每隔固定的時間掃描一次監控的文件.我把代碼也貼出來:'


    // Contributors:  Mathias Bogaert

    package org.apache.log4j.helpers;

    import java.io.File;
    import org.apache.log4j.helpers.LogLog;

    public abstract class FileWatchdog extends Thread {

      
      
    static final public long DEFAULT_DELAY = 60000
      
      
    protected String filename;
      
      
      
    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();
      }


      
      
    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.sleep(delay);
        }
     catch(InterruptedException e) {
    // no interruption expected
        }

        checkAndConfigure();
       }

      }

    }



    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 在线观看免费无码视频| 三级片免费观看久久| 一个人免费日韩不卡视频| 亚洲AV无码专区国产乱码电影 | 亚洲精品高清视频| 两个人看的www视频免费完整版| 亚洲高清无码专区视频| 一区二区三区在线观看免费| www国产亚洲精品久久久| 一级白嫩美女毛片免费| 日本亚洲成高清一区二区三区| 少妇性饥渴无码A区免费 | 女性自慰aⅴ片高清免费| 亚洲av成人中文无码专区| 免费成人黄色大片| CAOPORN国产精品免费视频| 亚洲av永久无码精品漫画| 麻花传媒剧在线mv免费观看 | 亚洲精品美女久久久久9999| 中国人xxxxx69免费视频| 亚洲中字慕日产2020| 国产又黄又爽又刺激的免费网址 | 亚洲AV色无码乱码在线观看| 免费大片在线观看网站| 中文字幕无码免费久久9一区9 | 亚洲成Av人片乱码色午夜| 免费精品国产自产拍在| 日本亚洲中午字幕乱码 | 成年女人毛片免费播放人 | 美女被爆羞羞网站免费| 亚洲精品V欧洲精品V日韩精品 | 午夜国产羞羞视频免费网站| 中文字幕看片在线a免费| 亚洲乱码卡三乱码新区| 亚洲国产a级视频| 100部毛片免费全部播放完整| 午夜亚洲WWW湿好爽| 亚洲av不卡一区二区三区| 四虎成人免费影院网址| 永久免费av无码入口国语片| 亚洲色中文字幕在线播放|