2017-01-18 83 views
0

我有這樣的log4j.properties文件:Log4j的禁用#timestamp評論

#Wed Jan 18 12:55:30 EET 2017 
log4j.rootLogger=ERROR, stdout, gui, clientFile 
log4j.logger.app=DEBUG 
... 

當我開始我的應用程序第一行與時間戳(#Wed Jan 18 12:55:30 EET 2017)總是在不斷變化。它會導致一些Git提交問題(我不能將這個文件添加到.gitignore)。

找到什麼是添加時間戳:此方法正在調用應用linkedProperties.store(fileOutputStream, null); store()方法的實現來自java.util.Properties。

package java.util; 
    ... 
    public class Properties extends Hashtable<Object,Object> { 
    ... 

    public void store(OutputStream out, String comments) 
     throws IOException 
    { 
     store0(new BufferedWriter(new OutputStreamWriter(out, "8859_1")), 
       comments, 
       true); 
    } 

    private void store0(BufferedWriter bw, String comments, boolean escUnicode) 
      throws IOException 
     { 
      if (comments != null) { 
       writeComments(bw, comments); 
      } 
      bw.write("#" + new Date().toString()); 
      bw.newLine(); 
      synchronized (this) { 
       for (Enumeration<?> e = keys(); e.hasMoreElements();) { 
        String key = (String)e.nextElement(); 
        String val = (String)get(key); 
        key = saveConvert(key, true, escUnicode); 
        /* No need to escape embedded and trailing spaces for value, hence 
        * pass false to flag. 
        */ 
        val = saveConvert(val, false, escUnicode); 
        bw.write(key + "=" + val); 
        bw.newLine(); 
       } 
      } 
      bw.flush(); 
     } 
    ... 

如何避免這種情況bw.write("#" + new Date().toString());?有沒有類似於java.util.Properties的東西?

+0

爲什麼不能將此文件添加到gitignore? – Tom

+0

因爲你的配置在你的Eclipse IDE中。一個簡單的解決方案,下載一個新的Eclipse IDE,然後導入您的源代碼。 –

+0

@thebluefox我可以添加它,但文件可以由某人更改。我需要在git上看到這種變化。所以.gtiignore不是解決這個問題的最好方法。 –

回答

0

我剛剛覆寫了public void store(OutputStream out,String comments)(刪除了bw.write("#" + new Date().toString()))。有關此問題的更多信息,您可以使用此鏈接(它完全公佈我的問題):Properties.store() - suppress timestamp comment

1

編輯:這個答案現在laregely冗餘給出的OP的編輯,下面我建議找什麼添加時間戳的文件。不過,我會把它放在這裏,因爲它可能有助於某人。


首先,指示Git忽略文件中的各行是不太可能的。

我的第一個建議是找到什麼是將時間戳添加到文件並停止它。

想到的唯一可以幫助你在Git中專門從Gits工作樹中刪除文件。

git update-index --skip-worktree <file>

這將指示Git的一個改變版本的文件不應該被提交,因此不包括在其工作的樹,但仍然會保持跟蹤複製在庫中。 Look here for official docs

很明顯,如果您需要開發人員定期更新/提交此文件,這將無法正常工作。

+0

已編輯該問題。 –

+0

謝謝,我的問題只是dublicates這一個http://stackoverflow.com/questions/6184335/properties-store-suppress-timestamp-comment –

+0

當你問/尋找正確的問題 – Tom