# 日誌頁顯示、歷史與搜尋
日誌頁以主 App Documents 的 `log.txt` 為準,主 App、Socket 與擴展轉送的日誌由既有 AppLogPersister 匯入主檔案。讀取與寫入共用序列佇列,讀取前先將待寫內容落盤。
## 歷史瀏覽
- 預設顯示最新 200 行,較早/較新按鈕依檔案行號分頁。
- 切頁或進入背景不清除歷史;保留目前頁面、捲動位置與篩選狀態(限本次 App 執行期間)。
- 拖曳進入歷史閱讀模式,有新內容只顯示新增數量。按「回到最新」恢復追尾。
- 只有日誌頁可見且 App 在前景時,每秒檢查更新。
- 清除主檔案需要確認。清除不停止新的日誌寫入,也不刪除擴展來源檔案。
## 搜尋與原文
- 搜尋欄、等級與模組篩選預設只作用於目前頁面。
- 「搜尋完整檔案」依相同條件分頁掃描搜尋開始時保留的檔案範圍,顯示進度;最多顯示 500 筆結果,關閉搜尋視窗即取消。
- 點選搜尋結果會暫時取消顯示篩選,載入前後文,可再按「恢復篩選」。
- 「複製篩選原文」只複製目前頁面符合條件的原文,不包含新增標籤。原有 log.txt 匯出方式保留。
## 等級與限制
紅色錯誤、橙色警告、綠色成功,並顯示文字及符號。舊文字使用 LogPresentation 相容分類;`dropped=0` 與 `capturePhase=streaming` 不會誤標成警告或發布成功。
主檔案沿用既有保留政策:約超過 7,000 行時裁切為最近 5,000 行,已被裁掉的資料無法復原。索引保存 UTF-8 位元組位移,不一次載入所有內容;單頁最多讀 200 行/1 MiB,異常超大頁會顯示截斷提示,此時應匯出原檔查閱完整內容。搜尋亦受單頁讀取上限限制。
清空、裁切、替換或偵測到檔案縮短時會使索引失效,重設頁面並提示。跨 App 重啟恢復閱讀位置、跨輪替檔案搜尋與結構化日誌仍未實作。
## 跨多筆框選
按「框選原文(多筆)」開啟目前頁面篩選結果的固定原文快照。長按文字並拖曳系統選取把手,可跨多筆複製,也可複製全部原文。進入時暫停追尾,快照不受新日誌與檔案裁切影響;不包含其他分頁。
來源切換上方明確顯示「日誌模式」,並說明接收來源與歷史篩選的差別。