日誌解析器
貼上原始日誌——JSON、logfmt、Web 訪問、syslog 或普通文本——不寫模式,直接得到時間、級別、異常與關鍵欄位。
時間範圍
2026-10-20T13:55:36.123+08:00 資訊 [閘道器] 收到請求 path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004+08:00","level":"錯誤","service":"支付服務","message":"扣款失敗","order_id":"A-1042","user_id":4821}
2026-10-20 13:55:40,512 錯誤 [訂單服務] 提交訂單時發生未處理異常
java.lang.IllegalStateException: 閘道器超時
at com.acme.Order.submit(Order.java:42)
Caused by: java.net.SocketTimeoutException: 讀取超時
at com.acme.Gateway.call(Gateway.java:77)
2026-10-20T13:55:41.900+08:00 警告 [閘道器] 安排重試 attempt=2 order_id=A-1042怎麼用
- 貼上一段日誌或開啟本地 .log / .txt 檔案。解析立刻開始,沒有「執行」按鈕;每一行依次嘗試 JSON、logfmt、Web 訪問、syslog,以及「時間或級別開頭」的文本。
- 先看摘要:時間範圍、級別分佈、異常數、識別到的格式與最常見的欄位鍵。摘要始終統計全部事件。
- 點級別 chip 或在搜尋框輸入關鍵詞來縮小列表,兩者可疊加。點任意一行可展開完整訊息、全部欄位、異常堆疊與原始行;複製或下載的是當前篩選後的 JSON。
示例
原始日誌
2026-10-20T13:55:36.123Z 資訊 [閘道器] 收到請求 path=/api/orders user_id=4821
{"@timestamp":"2026-10-20T13:55:37.004Z","level":"錯誤","service":"支付服務","message":"扣款失敗","order_id":"A-1042","user_id":4821}
2026-10-20 13:55:40,512 錯誤 [訂單服務] 提交訂單時發生未處理異常
java.lang.IllegalStateException: 閘道器超時
at com.acme.Order.submit(Order.java:42)解析摘要
事件:3 · 行數:5 時間範圍:2026-10-20T13:55:36.123Z → 2026-10-20T13:55:40.512(時區混合) 級別:資訊 1 · 錯誤 2 異常:1 格式:JSON 1 · 文本 2 欄位:path 1 · user_id 2 · order_id 1 · service 1
第二行是一個完整的 JSON 事件;Java 類名與堆疊歸入上一條「錯誤」事件。最後一行沒有時區,按字面時刻參與比較,所以時間範圍標註為「時區混合」。中文級別詞與英文級別詞一樣識別,輸入原文不會被改寫。
口徑、上限與已知問題
- 格式逐行識別,順序固定:JSON(一行一個物件)、logfmt(至少 2 個 key=value)、Apache/Nginx Common/Combined 訪問日誌、syslog RFC 5424/3164,最後是「行首為支援的時間戳記或級別」的文本。都不命中就保留為普通事件,不丟行。
- 只歸一化無歧義的時間:ISO 8601、年在前日期、Apache 訪問時間、Unix 秒/毫秒。03/04/2026、只有日期、無年份 syslog 只保留原文,時間欄位為空,絕不猜。
- 小數秒截斷到毫秒,不四捨五入;偏移原樣保留。沒有時區的時間按字面時刻比較,摘要會標註「無時區的字面時間」或「時區混合」。
- 級別來自固定詞表(英文 + 中文/阿語詞)、pino/bunyan 數字、syslog PRI/severity,或 HTTP 狀態碼(5xx 錯誤、4xx 警告、其餘資訊)。識別不到就是未知,不預設成 info。
- 縮排行、堆疊幀、Traceback、Exception in thread、Caused by 會併入上一條事件;空行結束堆疊。這是啟發式規則,自定義多行格式可能需要用空行分隔事件。
- 異常只從以 Exception / Error / Throwable 結尾的類名識別;有多個 Caused by 時取最深的一條。不解析堆疊幀、不做根因排序、不呼叫 AI。
- 列表最多渲染 200 條匹配事件;計數、摘要、複製與下載始終覆蓋全部匹配,列表會明確提示被截斷。
- 輸入硬上限 5,000,000 字元;超過 500,000 字元仍會解析,但防抖更長。單行超過 200,000 字元時按普通文本保留。
- 不支援 JSON 陣列與多行美化 JSON——只接受一行一個物件;非法 JSON、註解、尾逗號不會被修復,按普通文本保留。
- 不聯網、不上傳、不寫 URL/儲存/log;檔案只通過瀏覽器 File API 本地讀取,複製與下載由你主動點選觸發。
相關工具
日誌結構化之後,通常還需要這些。