ログ比較:複数のログファイルをタイムスタンプで同期・差分比較

複数のログファイルを横に並べ、タイムスタンプで連動スクロールし、必要な行だけを絞り込みます。

分散システムのデバッグ用フルスクリーンログビューアーです。異なるサービスのログを追加すると、同じ瞬間に各所で何が起きたかを確認できます。

ログ比較:複数のログファイルをタイムスタンプで同期・差分比較
複数のログファイルを横に並べ、タイムスタンプで連動スクロールし、必要な行だけを絞り込みます。

ビューアーは独立したフルスクリーンアプリとして動作するため、すべてのピクセルをログ表示に使えます。

ログ比較を開く(フルスクリーン)

ファイルはすべてブラウザー内で解析され、アップロードされません。

  • タイムスタンプ同期スクロール:開いたすべてのログが同じ時刻へ一緒に移動します。
  • 複数ファイルを横並び表示。クライアント、サーバー、プロキシのログを比較できます。
  • ファイルごとのキーワード・正規表現フィルターでノイズを関連行だけに絞り込みます。
  • 行の強調表示とピン留めで、タイムラインを追いながら証拠をマークできます。
  • ブラウザー内でローカル解析するため大きなファイルにも対応。アップロード不要でサーバーの容量制限もありません。
  • 無料のオープンソース(github.com/lubobill1990/log-compare)。

タイムスタンプでログを同期比較する理由

あるリクエストが3つのサービスにまたがって失敗したとき、真実は3つのログファイルに分散しています。1つずつ読むと、タイムスタンプを頭で保持しながらエディターを行き来することになり、そのたびに流れを見失います。Log Compare は逆の方法を取ります。関連するすべてのファイルを一度に開くと、ビューアーが共通のタイムラインに揃えるため、1つのログをスクロールすれば他のログも同じ瞬間へ移動します。 中心となる操作は、タイムスタンプにロックされたスクロールです。各ファイルはブラウザー内で解析され、すべての行のタイムスタンプにインデックスが作成されます。メインログを移動すると、他のペインはその時刻か直前の最も近い行に追従します。これはエンジニアが2台のモニターと多大な忍耐で手作業してきた手法を自動化したものです。マシン間のクロックスキューは隠されずに見えるため、それ自体が診断材料になります。データベースログが原因となったリクエストより前にイベントが起きたと示すなら、NTP 設定について重要なことが分かります。 フィルターにより、大規模でも同期表示が役立ちます。詳細なサービスは毎秒数千行を出力することがありますが、ファイルごとのキーワードまたは正規表現フィルターで、各ペインを必要な行、つまりエラーコード、リクエスト ID、ユーザー ID に絞れます。それでも同期は完全なタイムラインに対して機能します。すべてのペインでリクエスト ID フィルターを組み合わせれば、分散トレースを上から下まで読める形にできます。 すべてローカルで処理されます。ファイルはブラウザーの File API で読み取られ、あなたのマシンから出ることはありません。ログに顧客データ、トークン、無作為なオンラインツールに貼り付けられない内部ホスト名が含まれる場合に重要です。実用上のサイズ制限もアップロード上限ではなく RAM になります。 典型的な用途は、5つのサービスのログから混乱した1分間を復元するポストモーテム、障害環境と正常環境のログを比較して挙動が分岐する場所を見つけること、クライアント・ゲートウェイ・バックエンドをまたいで1つのリクエスト ID を追うこと、そして修正がエラーメッセージだけでなくイベント順序を変えたか確認することです。ビューアーはオープンソースなので、独自のタイムスタンプ形式向けに解析ルールを拡張できます。

ログ比較の使用例

エンジニアによるタイムスタンプ同期ログの実践的な使い方。

シナリオログ比較の支援内容結果
ゲートウェイとバックエンド間の API リクエストが断続的に失敗する両方のログを開き、リクエスト ID で絞り込み、ゲートウェイのエラーへスクロールバックエンドのペインはすでに同じ時刻にあります。40 ms 前のコネクションプールタイムアウトです。
4サービスにまたがる3分間の障害のポストモーテム4つすべてのログを開き、障害時間帯を連動して順に確認サービス間のイベント順序が明確になり、どのアラームが原因でどれが結果かも分かります。
ステージングでは動くが、本番では失敗する各環境から同じ操作のログを横並びで開く本番環境が別のコードパスへ進む正確な行でペインが分岐します。
ホスト間のクロックスキューが疑われる既知の共有イベント(デプロイマーカー、cron 実行)に合わせるスキューはペイン間の一定オフセットとして現れます。タイムラインを信頼する前に数値化しましょう。

ログ比較の使い方

  1. 「ログ比較を開く」をクリックすると、ビューアーがフルスクリーンページで開きます。
  2. 2つ以上のログファイルをドラッグ&ドロップするか、ファイル選択画面で選びます。各ファイルは専用ペインで開きます。
  3. 任意のペインをスクロールすると、他のペインも同じタイムスタンプに自動追従します。
  4. ペインごとにキーワードまたは正規表現フィルターを追加してノイズを減らします。同期は完全なタイムラインを追跡し続けます。
  5. イベント順序を復元しながら、重要な行を強調表示またはピン留めします。

ログ比較 FAQ

ログファイルはどこかへアップロードされますか?
いいえ。ファイルはブラウザーの File API で開かれ、JavaScript でローカル解析されます。何も送信されないため、顧客データやマシン外に出せない秘密情報を含むログでも安全に使えます。
どのタイムスタンプ形式を認識しますか?
一般的な形式はそのまま使えます。ISO 8601(2026-09-11T02:30:00.123Z)、syslog 形式の日付、行の先頭付近にあるエポックミリ秒です。認識可能なタイムスタンプがない行は前の行の時刻を継承するため、スタックトレースはログエントリーに紐付いたままです。
どれくらい大きいファイルを処理できますか?
解析はメモリー上で行われるため、実用的な上限はブラウザーの RAM です。デスクトップでは通常数百 MB は問題ありません。数 GB のログでは、まず grep で事前に絞るか時間範囲で分割してから必要な部分を読み込んでください。
時計が異なるマシンのログを比較できますか?
はい。同期は各ファイル固有のタイムスタンプを使用するため、一定のクロックスキューは黙って補正されず、ペイン間の見えるオフセットとして現れます。既知の共有イベントに合わせてスキューを測定し、そのオフセットを考慮してタイムラインを読んでください。
これはオープンソースですか?
はい。Log Compare は github.com/lubobill1990/log-compare でオープンソースライセンスの下に開発されています。新しいタイムスタンプ形式や機能に関する Issue とプルリクエストを歓迎します。
なぜ別のフルスクリーンページで開くのですか?
ログ解析には横幅が必要です。長い行とフィルターを持つ複数ペインを表示するためです。そのためビューアーはサイトの通常レイアウトの外で動作し、ウィンドウ全体を使用します。セッション状態はそのタブに保持され、このランディングページは説明と起動だけを担当します。