如果我不斷解析日誌文件,並檢測到它已經輪換,那麼處理此問題的最佳做法是什麼?如果日誌文件已經旋轉,該怎麼辦?
- 更新我的內部HashMap來反映新的文件指針( 旋轉文件的結尾)
- 或者我應該更新HashMap的爲0,所以它可以讀取 從一開始旋轉文件
我擔心的是,在情況沒有發生異常的情況下。如上所述,我可能從一開始就間接解析一個大文件,並在主機上施加很大的負載。 但是,如果我使用沒有。 1我可能會錯過解析日誌文件的重要事情。
這是我放在一起的代碼。
currentFilePointer = util.FileManagement.getLastFilePointerFromFile(file.getName());
lastFilePointer = Long.parseLong(lastReadFiles_.get(file.getName()).toString());
if (currentFilePointer < lastFilePointer) // file has grown
{
processLineByLine(file.getName(), currentFilePointer, lastFilePointer);
} else if (currentFilePointer > lastFilePointer) // file has been rotated
{
lastReadFiles_.put(file.getName(), currentFilePointer); // Option 1
}