<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一区免费l| 24小时日本在线www免费的| 久久精品亚洲日本波多野结衣| 久久亚洲中文字幕精品一区| 无码av免费网站| 丰满亚洲大尺度无码无码专线 | 久久久久亚洲AV片无码下载蜜桃| 91免费精品国自产拍在线不卡| 男女猛烈无遮掩视频免费软件| 亚洲国产精品一区二区久久| 日本免费中文字幕在线看| 久久福利青草精品资源站免费 | 亚洲一区二区三区成人网站| 国产综合精品久久亚洲| 黄页网站免费在线观看| 一出一进一爽一粗一大视频免费的| 亚洲精品午夜视频| 亚洲性久久久影院| 啦啦啦高清视频在线观看免费| 九九免费观看全部免费视频| 亚洲欧洲日本精品| 国产亚洲精品精华液| 好爽好紧好大的免费视频国产| 一级毛片免费观看不卡的| 四虎精品免费永久免费视频| 香蕉大伊亚洲人在线观看| 国产精品亚洲片在线| 全部免费国产潢色一级| 国产免费丝袜调教视频| 你好老叔电影观看免费| 美女被免费网站在线视频免费| 亚洲香蕉在线观看| 久久夜色精品国产噜噜噜亚洲AV| 亚洲国产精品一区二区第四页| 天天天欲色欲色WWW免费| 亚洲免费黄色网址| 四虎影视在线影院在线观看免费视频| 一级A毛片免费观看久久精品 | 97在线视频免费播放| 中文字幕a∨在线乱码免费看|