環境:任何.Net Framework歡迎。 我有一個日誌文件被寫入24/7。附加和讀取文本文件
我想創建一個應用程序,它將讀取日誌文件並處理數據。
什麼是有效地讀取日誌文件的最佳方式?我想象用FileSystemWatcher之類的東西來監視文件。但是,如何確保我的應用程序處理完成後不會讀取相同的數據?或者說應用程序由於某種未知的原因而中止,它將如何從最後一次停止的地方恢復?
通常在日誌文件中有效負載的周圍有一個頁眉和頁腳。也可能是內容中的ID字段。還不確定關於ID字段在那裏。
我也想到了可能在某處保存行讀取計數,可能會使用它作爲書籤。
「您應該能夠記住您在文件中的最後位置,並稍後回退到該位置並重新開始閱讀」有什麼建議嗎?保存最後一行是否是一個好主意?什麼倒退到一個位置看起來像在代碼中? – Rod
我的意思是以某種方式保存文件中的位置,即像streamReader.BaseStream.Position這樣的值,對於長度爲150個字符的1000行可能是150000。存儲最後一行讀取沒有意義,因爲可能有重複。如果每個字符串都是唯一的,它可能是有用的,但它需要一些時間來讀取文件中的所有行,直到文件中的那一行,而不是即時Seek()操作。 – aiodintsov