日誌比較:依時間戳對齊並比較多個日誌檔案差異

並排開啟多個日誌檔案,依時間戳同步捲動,並篩選出重要的日誌行。

用於偵錯分散式系統的全螢幕日誌檢視器:放入來自不同服務的日誌,即可查看各處在同一時刻發生了什麼。

日誌比較:依時間戳對齊並比較多個日誌檔案差異
並排開啟多個日誌檔案,依時間戳同步捲動,並篩選出重要的日誌行。

檢視器以獨立的全螢幕應用程式執行,讓每一個像素都用於你的日誌。

開啟日誌比較(全螢幕)

檔案完全在瀏覽器中解析,不會上傳任何內容。

  • 依時間戳對齊捲動:所有已開啟的日誌會一起移到同一時刻。
  • 多個檔案並排顯示——比較用戶端日誌、伺服器日誌和 Proxy 日誌。
  • 每個檔案可設定關鍵字和正規表示式篩選器,將雜訊縮減為相關日誌行。
  • 醒目提示和釘選日誌行,在梳理時間軸時標記證據。
  • 在瀏覽器中本機解析以處理大型檔案——不必上傳,也沒有伺服器大小配額。
  • 免費且開源(github.com/lubobill1990/log-compare)。

為什麼要依時間戳對齊比較日誌

當一個請求涉及三個服務並出現問題時,真相散落在三個日誌檔案中。逐一閱讀會迫使你在腦中記住時間戳,在編輯器間跳轉,且每次都失去線索。Log Compare 採取相反的方法:一次開啟所有相關檔案,檢視器會將它們對齊到共用時間軸,因此捲動一份日誌時,其他日誌也會捲動到同一瞬間。 核心互動是時間戳鎖定捲動。每個檔案都在瀏覽器中解析,並為每一行的時間戳建立索引。當你瀏覽主要日誌時,其他窗格會跟隨到該時刻或之前最接近的行——這正是工程師用兩台螢幕和許多耐心手動做的技巧,現在可自動完成。機器間的時鐘偏差會維持可見而非被隱藏,這本身就有診斷價值:若資料庫日誌宣稱事件早於造成它的請求發生,你就得知了 NTP 設定的重要資訊。 篩選器讓大規模對齊變得實用。冗長的服務每秒可輸出數千行;各檔案的關鍵字或正規表示式篩選器可將每個窗格縮減為你關心的行——錯誤碼、請求 ID、使用者 ID——而對齊仍以完整時間軸為基礎。跨所有窗格組合請求 ID 篩選器,就能把分散式追蹤變成可從頭讀到尾的內容。 一切都在本機完成。檔案透過瀏覽器的 File API 讀取,絕不會離開你的機器;當日誌含有客戶資料、權杖或不可貼到陌生線上工具的內部主機名稱時,這點尤其重要。這也表示實際大小限制是你的 RAM,而不是上傳上限。 典型用途包括:在事後檢討中從五個服務還原混亂的一分鐘;將故障環境的日誌與正常環境比較以找出行為分歧;跨用戶端、閘道和後端追蹤一個請求 ID;以及確認修正是否改變了事件順序,而不只是錯誤訊息。檢視器是開源的,因此可擴充解析規則以支援自訂時間戳格式。

日誌比較使用範例

工程師實際使用時間戳對齊日誌的方式。

情境日誌比較如何協助結果
閘道和後端之間的 API 請求間歇性失敗開啟兩份日誌,依請求 ID 篩選,然後捲動至閘道錯誤後端窗格已位於同一時刻:40 ms 前發生連線集區逾時。
針對 4 個服務、持續 3 分鐘的中斷進行事後檢討開啟所有四份日誌,同步逐步查看中斷時間範圍跨服務的事件順序變得明確,包括哪個警報是原因、哪個是結果。
預備環境正常,正式環境失敗並排開啟各環境中相同操作的日誌窗格會在正式環境採取不同程式碼路徑的精確行處分歧。
懷疑主機之間有時鐘偏差對齊至已知的共用事件(部署標記、cron 觸發)偏差會顯示為窗格間的固定偏移——信任任何時間軸前先量化它。

如何使用日誌比較

  1. 按一下「開啟日誌比較」——檢視器會在全螢幕頁面中開啟。
  2. 拖放兩個或更多日誌檔案(或使用檔案選擇器);每個檔案會在自己的窗格中開啟。
  3. 捲動任一窗格:其他窗格會自動跟隨到相同時間戳。
  4. 為每個窗格新增關鍵字或正規表示式篩選器以減少雜訊——對齊仍會追蹤完整時間軸。
  5. 重建事件順序時,醒目提示或釘選關鍵日誌行。

日誌比較常見問題

我的日誌檔案會上傳到任何地方嗎?
不會。檔案使用瀏覽器的 File API 開啟,並在 JavaScript 中於本機解析。不會傳送任何內容,因此此工具可安全處理含有客戶資料或必須留在機器上的機密資訊的日誌。
可辨識哪些時間戳格式?
常見格式可直接使用——ISO 8601(2026-09-11T02:30:00.123Z)、syslog 樣式日期,以及出現在行首附近的 Epoch 毫秒。沒有可辨識時間戳的行會沿用上一行的時間,因此堆疊追蹤會保持附屬於其日誌項目。
它能處理多大的檔案?
解析在記憶體中進行,因此實際限制是瀏覽器的 RAM——桌上型電腦通常可處理數百 MB。對於數 GB 的日誌,請先用 grep 預先篩選或按時間範圍分割,再載入所需片段。
我可以比較來自時鐘不同機器的日誌嗎?
可以——對齊使用各檔案自己的時間戳,所以固定時鐘偏差會顯示為窗格間可見的偏移,而不是被悄悄校正。對齊到已知的共用事件以測量偏差,接著將該偏移納入時間軸解讀。
這是開源的嗎?
是。Log Compare 在 github.com/lubobill1990/log-compare 以開源授權開發;歡迎針對新時間戳格式或功能提出 Issue 和 Pull Request。
為什麼它會在獨立的全螢幕頁面開啟?
日誌分析需要水平空間——多個含有長行及篩選器的窗格。因此檢視器在網站的一般版面配置外執行,使用整個視窗。你的工作階段狀態會留在該分頁;此登陸頁只負責說明與啟動它。