我有一個有趣的問題,並會感謝您的想法的最佳解決方案。 我需要解析一組日誌。日誌由多線程程序生成,單個進程週期生成多行日誌。如何解析由多個線程寫入的日誌?
解析這些日誌時,我需要從每個進程中提取特定的信息 - 當然這些信息是跨越多行的(我想將這些數據壓縮成一行)。由於應用程序是多線程的,因此屬於某個進程的行塊可以作爲其他進程碎片化,同時寫入同一個日誌文件。
幸運的是,每一行都給出了一個進程ID,所以我能夠區分哪些日誌屬於哪個進程。
現在,已經有幾個解析器都擴展了相同的類,但被設計爲從單個線程應用程序(沒有碎片 - 從原始系統)讀取日誌,並在超類中使用readLine()方法。這些解析器將繼續讀取行,直到所有正則表達式匹配一行行(即在單個處理週期中寫入的行)爲止。
那麼,我可以用超級類做些什麼,以便它可以管理碎片日誌,並確保對現有已實現的解析器的更改最小化?