5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ログ調査のたびに検索→前後確認→コピーを繰り返すのがつらくて、VS Code拡張機能を作ってみた

5
Posted at

はじめに

ログを見やすくするVS Code拡張機能を作成しました。

動作イメージ

Log Workbench S

開発中にアプリケーションのログを確認するとき、ちょっと面倒だなと思うことがありませんか?

ログファイルを開いて、キーワードで検索して、該当箇所を見つけて、その前後を確認する。処理時間が気になれば、時間のかかっているログを探して、必要なら別のツールにコピーする。

ひとつひとつは大した作業ではありません。でも、実装と動作確認を繰り返していると、こうした細かい作業が意外と積み重なります。

そこで、VS Code上でローカルのログファイルを手軽に確認できる拡張機能 Log Workbench S を作りました。

Log Workbench Sとは

Log Workbench Sは、開発やテストで出力されたログファイルを、VS Code上で確認・分析するための拡張機能です。

単にログを表示するだけではなく、キーワード検索、日時による絞り込み、エラーや警告の抽出、ログ間隔の分析などをまとめて行えます。

本格的なログ分析基盤を構築するほどではないけれど、テキストエディターでログを読むだけでは少し不便。そんな場面を想定しています。

VS Code標準の検索だけでは、該当行の前後を見ながら、時間帯やエラーなどの条件を組み合わせて絞り込むのは手間がかかります。Log Workbench Sは、絞り込んだ結果に対して前後の行を表示できる点を軸にしています。

使い方

ログファイルを、VS Codeのエクスプローラーまたはエディタータブで右クリックし、Open with Log Workbench S を選ぶと起動します。

対応しているファイルの拡張子は .log .txt .out .trace .json .csv です。

普段使っているVS Codeからそのまま利用できるので、ログ確認のために別のアプリケーションへ移動する必要がありません。

エクスプローラーから開く
open Log Workbench S
タブから開く
open2 Log Workbench S

主な機能

1. キーワード検索で目的のログを探す

まずは基本となるキーワード検索です。

keyword

エラーコードやメッセージ、リクエストIDなど、調べたい文字列を指定して対象のログを絞り込めます。

例えば、次のようなログがあったとします。

2026-10-16 10:15:01.120 INFO  Request started requestId=R-1001
2026-10-16 10:15:01.250 INFO  User lookup completed userId=U-1001
2026-10-16 10:15:03.800 ERROR Database timeout requestId=R-1001
2026-10-16 10:15:03.810 WARN  Request failed requestId=R-1001

R-1001で検索すれば、関連するリクエストのログに絞って確認できます。

大量のログの中から目当ての行を探し続ける手間を減らせます。

2. 該当行の前後も確認できる

ログ調査では、エラーが発生した行だけを見ても原因が分からないことがあります。

その直前にどんな処理が実行されたのか、エラーの直後に何が起きたのか。前後のログを追うことが重要です。

Log Workbench Sでは、検索で見つけた対象行に加えて、その前後の行を表示できます。対象行のみ、前後、前のみ、後のみといった表示方法を選び、表示する行数も指定できます。

context-lines

例えば、タイムアウトが発生した行の前後5行を表示すれば、発生直前の処理や、その後のエラー処理をまとめて確認できます。

検索結果だけでは分かりにくい処理の流れを追いやすくするための機能です。

3. 日時でログを絞り込む

特定の時間帯に発生した問題を調べたい場合は、日時による絞り込みが便利です。

障害が発生した時刻や、テストを実行した時間帯などを指定して、確認する範囲を絞れます。

timestamp

ログ全体を最初から最後まで読むのではなく、問題が発生した時間帯を中心に調査できます。

4. エラー・警告・間隔の長いログを抽出する

ログの中から、特に確認したい行を抽出できます。

filter

  • エラー:例外や処理失敗など、問題が発生した箇所を探す(FATAL|ERROR|ERR|EXCEPTIONの文字列のある行を抽出)
  • 警告:エラーにはなっていないものの、気になる事象を確認する(WARN|WARNINGの文字列のある行を抽出)
  • 間隔の長い行:前の行から時間が空いている行を探し、処理の遅れなどパフォーマンス上の問題の手がかりにする

間隔の長い行の判定にはしきい値を利用できます。例えば1,000msを基準にすれば、前の行から1秒以上空いている行を重点的に確認できます。

先ほどのログであれば、Database timeoutの行は直前の行から約2.5秒空いているため、この基準で抽出される対象になります。

実装した機能の動作確認や、レスポンスが遅い原因を調べたいときに役立ちます。

5. ログ間隔の統計を確認する

ご注意:ここでの統計値は、前のログ行とのタイムスタンプの差(間隔)から計算しています。各処理の実際の所要時間ではないため、1スレッドで順番に出力されるログの目安としてお使いください。

タイムスタンプ付きのログでは、間隔の長い行を見つけるだけでなく、全体の傾向を把握することも大切です。

ログ間隔の統計画面

Log Workbench Sでは、前の行との間隔について次の統計値を確認できます。

指標 分かること
平均値 全体として、行と行の間にどのくらい時間が空いているか
中央値 データを大きさ順に並べたときの真ん中の値。極端な値に左右されにくい
最大値 最も間隔が空いたところはどのくらいか
P95 95%の行がこの値以下に収まる。間隔が長い側の傾向を見る指標

平均値だけでは、一部の極端に間隔が空いた行の影響を受けることがあります。中央値やP95も合わせて見ることで、間隔の傾向を多角的に確認できます。

例えば、平均値は小さいのに最大値が極端に大きい場合、特定の箇所だけ間隔が空いている可能性があります。

なお、アプリケーション全体の性能を自動的に計測する機能ではありません。

6. 複数の条件を組み合わせて調査する

実際のログ調査では、ひとつの条件だけでは対象を絞り切れないことがあります。

例えば、次のような流れです。

  1. 特定のリクエストIDで検索する
  2. エラーや警告を確認する
  3. 発生した日時の範囲を絞る
  4. 間隔の長いログを重点的に見る
  5. 該当箇所の前後のログを確認する

このように条件を組み合わせながら、調査したいログへ段階的に近づけます。

「ログを検索する」「エラーを探す」「前後の行を確認する」といった作業を、ひとつの画面の中で進められるのがポイントです。

7. ソートして気になるログから確認する

ログを時系列以外の観点で確認したい場合にも対応しています。

前の行との間隔などの値を基準に並べ替えることで、間隔の長い行から優先して確認できます。

大量のログを順番に読むのではなく、気になる箇所から調べたい場合に便利です。

8. 表示中のログをコピー・CSV出力する

絞り込んだログは、コピーやCSV出力によって別の場所でも活用できます。

例えば、次のような用途を想定しています。

  • 不具合調査のメモに貼り付ける
  • 問題が発生したログをチーム内で共有する
  • 表計算ソフトなどで追加分析する
  • 調査結果を報告資料にまとめる

ログを見つけて終わりではなく、その後の調査や共有につなげやすくしています。

9. 表示形式・テーマ・言語を切り替えられる

ログによってタイムスタンプの形式は異なります。

Log Workbench Sではタイムスタンプ形式を自動検出し、表示形式も切り替えられます。日時を読み取りやすい形式にそろえたい場合にも便利です。

timestamp-display-format

また、ライト・ダークなどのテーマや、表示言語の設定にも対応しています。普段の開発環境や好みに合わせて利用できます。

settings

ローカルのログを手軽に扱うために

この拡張機能は、手元のログファイルを開いて確認する開発・テスト用途を想定しています。

外部のサービスにログをアップロードして分析する仕組みではなく、ローカルのファイルを対象に利用できます。

ログ内容の解析はVS Code内で完結し、外部のサーバーやAPIは使用しません。

一方で、本番環境のログ監視や、膨大な件数のログを扱うための専用基盤ではありません。 大規模なログ分析や継続的な監視には、それに適した専用ツールを使うのがよいと思います。

開発中やテスト中に発生したログを、素早く確認するための道具として使ってもらえればと思います。

さいごに

今回、普段の開発でログを確認するときの小さな不便を解消するために、Log Workbench Sを作りました。

キーワード検索だけでなく、前後の行の表示、日時による絞り込み、エラーや間隔の長い行の抽出、ログ間隔の統計など、ログを調べるときに使いたい機能をまとめています。

ログを確認するたびに、検索して、前後を追って、別の場所にコピーして……という作業を少しでも減らせればと思っています。

今回紹介した拡張機能を使ってみていただける方は「Log Workbench S」で検索するか下記のリンクからインストールをしてください。

他にも便利な拡張機能を公開しています。
良かったらそちらもご覧ください。

ヘッダー固定や絞り込み機能で、Markdownの表を見やすくするVS Code拡張機能

Table Demo

参考リンク

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?