로그 파일을 계속 파싱하고 있고 회전이 감지되면이를 처리하는 가장 좋은 방법은 무엇입니까?로그 파일이 회전 된 경우 어떻게해야합니까?
- 업데이트 때문에이 처음부터 파일을 회전 읽을 수 있습니다 내 내부 해시 맵은 ( 회전 된 파일의 끝)
- 새로운 파일 포인터를 반영 아니면 0으로 해시 맵을 업데이트해야합니다
내 관심사는 상황 번호가 비정상 인 경우입니다. 위에서 언급 한 2, 나는 간접적으로 처음부터 큰 파일을 구문 분석하고 호스트에 상당한 부하를 넣을 수 있습니다. 그러나 아니요. 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
}