ログ・可観測性ツール

ログビューアーJSON・logfmt・Kubernetes・Dockerログに対応

ログファイルを貼り付けるか開いて「整形」をクリックすると、レベルでの絞り込み・キーワード検索・タイムスタンプ表示の切り替えが、整形済みの結果に対して即座に反映されます。

ログビューアー

サンプル:
フォーマットプリセットタイムスタンプ
レベル

ログテキスト

すべてブラウザ内で処理されます。貼り付けたり開いたりした内容はアップロードされません。

整形結果

ログを整形すると、ここに結果が表示されます。

ログを貼り付けるかサンプルを読み込んで「整形」をクリックしてください。

grepを一回叩けば該当行は見つかるが、サポートチケットの中にJSON形式のイベントとlogfmtの1行、それにKubernetesコンテナからコピーしたstdoutが混ざっていると話は別だ。どの行がエラーで、崩れたUnixタイムスタンプが何時を指し、どのリクエストが同じユーザーIDに属するのかを目で追うのは遅いうえにミスも起きやすい。

このログビューアーは、クリップボードに複数フォーマットが混在したログが入っている、まさにそういう瞬間のためのツールだ。各行の形を自動で判定し、可能な限りレベルとメッセージ本文を取り出し、絞り込みのために何かを再実行する必要はない。稼働中のログパイプラインを監視する本物の収集基盤の代わりにはならない——扱うのは、貼り付けたか、あるいはローカルファイルから開いた静的なテキストの塊で、開いているこのブラウザタブの中で一度きり処理される。「ログビューアー」のほかに「ログ整形ツール」と呼ばれたり、単に「ログを閲覧するツール」と説明されたりすることもあるが、指しているのは同じもの——貼り付けたテキストを読みやすい表に変える作業だ。

このログビューアーを使う理由

1つの形式だけでなく、1回の貼り付けに混在するログのために作られている。

1回の貼り付けで、5つの形を1行ずつ判定

JSONイベント、logfmtのkey=value、Kubernetesコンテナ由来のCRI形式stdout、Docker json-fileドライバの1行JSON、そしてプレーンテキストが同じ貼り付けの中に混在していても、「自動検出」が各行を個別に判定するため塊全体を1つの形式で解析しようとはしません。既知のどの形にも一致しない行もプレーンテキストとして表示され、消えることはありません。

JSON・logfmt・Kubernetes・Dockerのログ行が混在した貼り付け内容で、各行に検出されたフォーマットがラベル表示されている様子

フィルタ・検索・タイムスタンプ表示が即座に反映

新しく貼り付けた内容を整形するには「整形」ボタン(またはCtrl/Cmd+Enter)を明示的にクリックする必要がありますが、表ができた後はレベルのチェックを切り替える、検索語を入力する、タイムスタンプ表示を元のまま・ローカル時刻・UTC・相対時間の間で切り替える、といった操作はすべて整形済みの行に対して即座に再計算されます——そのために「整形」をもう一度押す必要はありません。

結果テーブルでレベルのチェックボックスを切り替え、検索語を入力すると、整形ボタンを押さずに表示行が即座に更新される様子

混在した貼り付けから信頼できる表へ

3つのステップと、それぞれの裏で実際に何が起きているか。

01

貼り付け、ファイルを開く、または混在サンプルを読み込む

ログテキストを直接貼り付けるか、「ファイルを開く」をクリックしてブラウザのファイル読み込み機能でローカルの.log/.txt/.jsonファイルを読み込めます——ファイルがどこかにアップロードされることはありません。フォーマットプリセットは既定で「自動検出」なので、多くの場合自分で形式を選ぶ必要はありませんが、すべての行がlogfmtだと分かっている場合などは該当プリセットを強制することで判定処理自体をスキップできます。

  • Ctrl/Cmd+Enterならキーボードから離れずに整形を実行できる
02

「整形」をクリックして結果の表を読む

入力しているそばから自動で整形が走ることはありません——1文字打つたびに全行の形を判定し直すのは無駄な処理だからです。「整形」を1回クリックする(またはショートカットを使う)と、空でない行がそれぞれ表の1行になります。行の「フィールド」ボタンをクリックすると、JSONオブジェクトのキーやlogfmtのペアなど、実際に抽出された内容を確認できます。

  • 既知のどの形にも一致しない行も、フォーマット「text」として1行を得ます——静かに破棄されたり、エラー扱いになったりすることはありません
03

整形し直さずにフィルタ・検索・エクスポート

レベルのチェックボックスは既定ですべてオンなので、自分でオフにするまでは何も隠れません。レベルを確信を持って検出できなかった行は、どのチェックボックスの状態にかかわらず常に表示され続けます——判定できない内容を黙って除外するのは推測であって、本来のフィルタではないからです。検索は正規表現に切り替えられ、タイムスタンプの列は元のまま・ローカル時刻・UTC・相対時間の間で切り替えられますが、いずれも貼り付けたテキストそのものには触れません。コピーやダウンロードは、現在フィルタされている行だけを、プレーンテキストまたは解析済みのepoch値を含む構造化JSONとして正確に書き出します。

  • レベルフィルタ・検索・タイムスタンプ表示の切り替えでは表がグレーアウトしません——実際に整形し直す必要がある、入力内容またはフォーマットプリセットの変更時だけグレーアウトします
ログビューアーへ移動

生のテキストに対してこの表が追加で与えてくれるもの

あなた専用のパーサーなど書かれていない貼り付け内容のための、検出・フィルタ・エクスポート。

貼り付け全体ではなく、行ごとに5形式を検出

JSON、logfmt、Kubernetes CRI、Docker json-file、プレーンテキストをそれぞれの行ごとに独立して判定するため、複数の情報源が混ざった貼り付けでも、先に手作業で分割することなく1つの一貫した表になります。

レベルフィルタとキーワード/正規表現検索

重大度と検索語で同時に表を絞り込め、正規表現への切り替えも可能です。いずれも整形済みの行に対して即座に再計算され、検出処理をやり直すことはありません。

4種類のタイムスタンプ表示、しかも常に非破壊

タイムスタンプ列を、貼り付けた元のテキスト・ローカル時刻・UTC・「3分前」のような相対表現の間で切り替えられます——変わるのはこの列の見た目だけで、入力欄の元のテキストは変わりません。

行ごとのフィールドパネルと2種類のエクスポート

任意の行を展開すると、検出器が取り出したすべてのフィールド——JSONオブジェクトのキー、logfmtのペア、Kubernetesのstreamとtagなど——を確認できます。現在フィルタされている行を、プレーンテキストまたは解析済みepochタイムスタンプ付きの構造化JSONとしてエクスポートできます。

このツールが意図的にやらないこと

マーケティング文句ではなく、実際の制約。

KubernetesとDockerはフォーマットプリセットであり、実際の接続では決してない
KubernetesまたはDockerのフォーマットプリセットを選択しても、検出器にどの行の形(CRI形式のstdout、またはjson-fileドライバの1行)を期待するかを伝えるだけです。実際のKubernetes APIサーバーやDockerデーモンに接続してライブログを取得することは決してなく、このツールはいかなるネットワークリクエストも行いません。
レベルが検出できなかった行は、レベルフィルタで隠されることがない
検出器がある行から確信を持ってレベルを取り出せなかった場合、どのレベルのチェックボックスがオン・オフでも、その行は常に表示され続けます——判定できなかった内容を除外するのは根拠のない推測であり、本来のフィルタではないからです。
タイムスタンプ表示は入力を書き換えない
元のまま・ローカル時刻・UTC・相対時間の切り替えは、「タイムスタンプ」列が検出済みの値をどう描画するかを変えるだけです。入力欄のテキストには触れません。タイムスタンプ単体をまとめて変換したい場合は、サイト内の専用Unixタイムスタンプ変換ツールを使ってください。
1回の貼り付けは約30万文字・2万行、ファイルは2MBが上限
この上限は、ブラウザタブの中で整形を高速かつ予測可能に保つためのものです。どちらかの上限を超えると、ログを黙って切り詰めるのではなく、明確なエラーとともに処理全体を拒否するので、何が整形されたのか常に把握できます。

ログビューアーのよくある質問

ログをオンラインツールに貼り付ける前に、多くの人が尋ねる質問。

登録不要で無料のJSONログビューアーはありますか?

あります。ログを貼り付けるか開いて「整形」をクリックすれば、このログビューアーがその場で表を表示します——登録、インストール、アップロードは一切不要で、すべて今開いているブラウザタブの中でJavaScriptとして動きます。

ログファイルをオンラインツールに貼り付けても安全ですか?

貼り付けたり開いたりした内容はどこにも送信されません。整形・フィルタ・検索・エクスポートはすべてブラウザ内でローカルに行われ、サーバー側へのアップロード・保存・記録は一切ありません。実際のログにはユーザーIDやIPアドレスなど機微な情報が含まれることが多いため、この点は重要です。

logfmtとJSONログの違いは何ですか?

logfmtは1行の中にkey=valueをフラットに並べる形式(level=info msg="done" duration=12ms)で、人が読みやすく、grepもしやすいように設計されています。JSONログは1行につき1つのJSONオブジェクトで、構造がより明確でプログラムから解析しやすい一方、目で追うのは大変です。このログビューアーはどちらの形式からも自動でフィールドを検出・抽出するので、事前にパーサーを選ぶ必要はありません。

ログのタイムスタンプを見やすい日時に変換するには?

整形したあとに「タイムスタンプ」のドロップダウンをローカル時刻・UTC・相対時間に切り替えると、各行の検出済みタイムスタンプがその形式で再描画されます——入力欄の元のテキストが変わることはありません。ログとは関係なくタイムスタンプ単体を変換したい場合は、サイト内の専用Unixタイムスタンプ変換ツールを使ってください。

このツールは自分のKubernetesクラスターに接続しますか?

「Kubernetesコンテナログ」はフォーマットプリセットにすぎず、すでにコピーしてきたテキストに対してどの行の形を期待するかをこのログビューアーに伝えるだけです——実際の接続ではなく、認証情報も不要で、ネットワークリクエストも一切発生しません。稼働中のクラスターをリアルタイムでtailしたい場合は、別の接続型ツールが必要です。

キーワードでログをオンライン絞り込みするには?

検索ボックスにキーワードを入力すると、「整形」をやり直すことなく、それを含む行だけに表が即座に絞り込まれます。隣の「正規表現」スイッチをオンにすれば単純な部分一致の代わりに正規表現で検索でき、レベルのチェックボックスと組み合わせて2つの軸で同時に絞り込むこともできます。

このツールが実際のログ行を正しく処理できていませんか?

今すぐこのログビューアーを使う

JSON・logfmt・Kubernetes・Dockerが混在したログを貼り付ければ、数秒でフィルタ・エクスポート可能な表が得られます——アップロードも登録も不要です。

このログビューアーを無料で使えるツールとしてブックマークしておけば、次にサポートチケットやターミナルから読みにくい混在ログが貼り付けられたときにすぐ使えます。

整形はすべてブラウザ内でローカルに行われます。