Visual Studio Code:デバッグ機能でログ出力!プログラムでログ出力する手間を省く!

概要

Logpointは、コンソール(*1)にメッセージを記録するデバッグ機能です。ソースを編集しないため、簡単にログの追加・削除が出来ます。


Logpoint単独ではブレークしませんが、ExpressionやHit Countと共に使用することでブレークも可能です。
詳細は下記をご確認ください。
Introducing Logpoints and auto-attach (visualstudio.com)のIntroducing Logpoints

(*1)DEBUG CONSOLE

Logpoint(ブレーク無し)

赤枠部を右クリックしてください。

画像に alt 属性が指定されていません。ファイル名: image-1-1024x315.png

Add Logpointをクリックしてください。

Log Message項目に、コンソールに出力したいメッセージを書いてください。
変数の値・関数の戻り値を出力:{変数}、{関数呼び出し}の様に{}で囲む
任意の文字列を出力:{}を記載せずに好きな文字列を書く。ここでは「Logpoint:」と書いている。

Logpointが設定された箇所には菱形のマークが表示されます。

キーボードのF5を押し、Python Fileをクリックしてください。

DEBUG CONSOLEに設定した内容が出力されます。

空白行にLogpointを設定した時の挙動と対策

空白行にLogpointを設定した場合、その行より上にある一番近い非空白行でLogpointを設定した時と同様の挙動になります。以降の画像のLogpointはそれぞれ、a, b, cの値をログ出力するように設定されています。

画像に alt 属性が指定されていません。ファイル名: image-3.png
4行目のLogpointのみ有効化
画像に alt 属性が指定されていません。ファイル名: image-4.png
4行目のLogpointのみ有効化した時のログ。
3行目にLogpintを設定した時と同様の出力になります。

下記は、5行目のLogpointのみを有効化した時のログです。for文にLogpointを設定すると不要なログが出力されてしまうため、Logpointの設定箇所を工夫する必要があります。
※変数dの値を出力したい場合は、for文にLogpointを設定すべきです。

下記は、8行目のlogpointのみを有効化した時のログです。a,b,cの値が正しく出力されています。

下記方針でLogpointを設定したら良いです。

  • 出力したい値がある行より下の非空白行に設定。例えば、5行目に出力したい値(変数 等)がある場合は、6行目以下の非空白行に設定。
  • 不要なログ出力を防ぐためにfor文を避けてLogpointを設定する。但し、for文の中に出力したい値がある場合を除く。

Logpoint(ブレーク有) ※Expressionを使用

Logpointとブレークを併用する方法を説明します。ブレーク設定しているLogpointがある処理を通過した時にログを出力し、ブレークする条件でブレークします。条件と一致するときのみ、ログを出力するわけではないので注意してください。

前提として、前述の「Logpoint(ブレーク無し) 章」の設定をしている状態とします。
Epressionを使用していますが、Expressionの代わりにHit Countを設定した場合も同様にブレークします。

菱形マークをクリックしてください。

Expressionをクリックしてください。

条件を入力してください。ここでは、iが1の時にブレークするようにしています。

iが1の時にブレークしています。Logpoint機能によるメッセージも出力されています。

DEBUG CONSOLEのFIlter機能で、ログ出力をフィルター

DEBUG CONSOLEのFilter機能によって、Logpointで出力したログにフィルターをかけることができます。

詳細は下記をご確認ください。
vscode-docs/v1_49.md at vnext · microsoft/vscode-docs · GitHub

DEBUG CONSOLEに0から9まで出力しています。Filterをかけていない状態です。

Filterボックスに1を入力して、ログに1を含む行を表示しています。

Filterボックスに!1を入力して、ログに1を含まない行を表示しています。

コメント

タイトルとURLをコピーしました