2011-05-07 74 views
1

我的代碼如下。在java中TailListener,如何避免重複的日誌消息

public static void main(String[] args) { 
     // TODO code application logic here 
     File pcounter_log = new File("c:\development\temp\test.log"); 

    try { 
     TailerListener listener = new PCTailListener(); 
     Tailer tailer = new Tailer(pcounter_log, listener, 5000,true); 

     Thread thread = new Thread(tailer); 
     thread.start(); 
    } catch (Exception e) { 
     System.out.println(e); 
    } 
} 

public class PCTailListener extends TailerListenerAdapter { 
public void handle(String line) { 
    System.out.println(line); 
} 
} 

.IE,我監測file.whenever登錄日誌文件更新消息的日誌(C:\研發\ TEMP \ test.log中),將打印日誌消息。

問題是,無論何時在日誌文件中更新日誌消息,它都會顯示相同的日誌消息兩次,有時候會顯示三次或四次,以避免重複的日誌消息。

回答

0

看看Tailer的代碼,我看不出會發生什麼。你確定你沒有運行多個tailer副本,並且這些消息在日誌文件中實際上沒有重複。

4

重複消息的原因之一是,如果使用Tailer.create靜態方法創建Tailer,它會自動啓動監視日誌的過程。

我們犯了一個tailer.run錯誤,它啓動另一個監控實例並打印兩次相同的條目。