2015-02-05 66 views
0

追加日誌中的java我試圖存儲日誌到文件中使用log4j的如何使用的FileHandler

我試圖創建一個單獨的類

public class MyLogger { 

    FileHandler fh; 
    Logger log; 

    public MyLogger(String className) { 
     log = Logger.getLogger(className); 
     try { 
      String location = this.getClass().getProtectionDomain().getCodeSource().getLocation().getPath().replace("%20", " ").replaceFirst("/", "") + "logs.log"; 
      fh = new FileHandler(location); 
      log.addHandler(fh); 
      SimpleFormatter formatter = new SimpleFormatter(); 
      fh.setFormatter(formatter); 
     } catch (Exception e) { 
      System.out.println("error in MyLogger class, method getLogger \n stack trace below \n"); 
      e.printStackTrace(); 
     } 
    } 

    public void log(Level l, String Message, Object o) { 
     log.log(l, Message, o); 
     flushStream(); 
    } 

    public void log(Level l, String Message) { 
     log.log(l, Message); 
     flushStream(); 
    } 

    private void flushStream() { 
     fh.flush(); 
     fh.close(); 
    } 

} 

我感到每一次調用這個類,當我需要將一些消息記錄到文件中。 它運行良好,但每次調用時都會覆蓋舊的日誌數據。 如何使用此代碼追加新日誌?或者有沒有其他記錄方式?

回答

0

還有另外一個構造函數的FileHandler,你可以用它來明確地告訴的FileHandler要追加日誌。該代碼是這樣的:

fh = new FileHandler(location, true); 

設置該構造函數的第二個參數是真正附加日誌。

相關問題