# 時間範圍診斷日誌匯出
入口:日誌頁 → 匯出診斷日誌。支援今天、最近一小時及自訂日期時間,產生後以分享按鈕送出 UTF-8 文字檔。今天與最近一小時以按下產生時為準;檔名及文件頭包含範圍。
不改變主 log.txt。先在持久化佇列 flush、匯入擴展封存,將封存與主檔合成快照,再背景分塊讀取,避免正在追加或清空主日誌造成內容混雜。快照複製期間暫時佔用寫入佇列,檔案很大時會延後寫入;不持有整檔記憶體。單行超過 8 MiB 時明確失敗,不靜默截斷。
中文年月日與時段格式優先解析,其次嘗試目前語系與 en_US 的短日期/中等時間。舊日誌沒有時區,使用匯出當下時區解讀,不能還原旅途中不同時區。無日期續行跟隨上一筆日期;疑似日期但解析失敗會停止承接並在摘要計數。範圍前的 BuildInfo 不額外加入,因此不保證每份範圍檔都有建置資訊。包含已落盤且仍在保留範圍內的主檔與封存;缺口摘要一併輸出。跨檔邊界重設續行歸屬,沒有日期的孤立首行不猜測歸屬。封存按檔名順序掃描,不保證跨來源事件全域時間排序,也不去重。
匯出遮蔽 RTMP URL 與常見具名憑證,並非任意秘密辨識器,分享前仍需檢視。原始快照在背景工作結束清理。產物位於 Caches/DiagnosticLogExports 的獨立 UUID 工作目錄,每次產生時清理七天前的工作目錄,不處理其他 App 檔案。快取也可能由系統回收,需長期保存請分享另存。
驗收:跨午夜範圍、凌晨/下午、錯誤多行續文、無命中、取消、大檔、分享、多視窗及不同語系。已補日期/續文/遮蔽回歸測試,Apple CI 與實機操作待確認。