환경 : 모든 .Net Framework 환영. 24/7로 기록되는 로그 파일이 있습니다.텍스트 파일 추가 및 읽기
로그 파일을 읽고 데이터를 처리하는 응용 프로그램을 만들려고합니다.
로그 파일을 효율적으로 읽는 가장 좋은 방법은 무엇입니까? 나는 FileSystemWatcher와 같은 것으로 파일을 모니터링하는 것을 상상한다. 그러나 응용 프로그램에서 처리 된 동일한 데이터를 읽지 않도록하려면 어떻게해야합니까? 또는 응용 프로그램이 알려지지 않은 이유로 중단되었다고 가정합니다. 마지막으로 중단 된 부분을 어떻게 알 수 있습니까?
일반적으로 로그 파일에있는 페이로드 주변에는 머리글과 바닥 글이 있습니다. 콘텐츠의 id 필드 일 수도 있습니다. 아직 거기에있는 id 필드에 대해서는 확실하지 않습니다.
어쩌면 북마크로 사용하는 어딘가에 라인 수를 저장하는 것도 상상했을 것입니다.
"파일의 마지막 위치를 기억하고 나중에 그 위치로 되감기를하고 다시 읽기 시작할 수 있어야합니다."이 작업을 수행하기위한 아이디어는 무엇입니까? 마지막 줄을 저장하는 것이 좋은 생각입니까? 코드에서와 같은 위치에 되감기는 무엇입니까? – Rod
필자는 파일에서 위치를 저장하는 것을 의미했습니다. 예를 들어 streamReader.BaseStream.Position과 같은 값은 길이가 150자인 1000 줄의 150000과 같을 수 있습니다. 마지막 줄 읽기를 저장하는 것은 중복이있을 수 있으므로 거의 의미가 없습니다. 각 문자열이 고유 한 경우 유용 할 수 있지만 즉시 Seek() 작업 대신 파일에있는 모든 문자열을 읽을 때까지 약간의 시간이 필요합니다. – aiodintsov