SalesforceのApex Replay Debugger

Apexコードのデバッグはなかなか不便です。System.debug()メソッドを各所に埋め込んで、読みにくいデバッグログファイルを頑張って読んでいる人も多いのではないでしょうか。
この記事では、モダン開発に近いコードをトレースして、実行された結果を確認できるApex Replay Debuggerをご紹介します。

デバッグ対象のApexコードにブレークポイントを設定する

最初にデバッグしたいApexコードの止めたい行にブレークポイントを設定しておきます。行番号の左をクリックすると赤丸でブレークポイントが設定できます。

行番号の左をクリックしてブレークポイントを設定する

組織のデバッグログを有効化する

VSコードのコマンドパレットで[SFDX: Replay Debugger用のデバッグログを有効]を選択します。これによって、VS Codeに設定されているデフォルト組織でデバッグログが生成されるようになります。

コマンドパレットでデバッグログを有効化する

画面を操作してログを取得する

デバッグしたいApexコードが実行されるSalesforceページを操作すると、裏ではデバッグログが生成されます。

デバッグログファイルを取得する

コマンドパレットで[SFDX: Apexデバッグログを取得]を選択します。ログの一覧が表示されるので、実行した時間のログを選択して取得します。

[SFDX Apexデバッグログを取得]を選択してログを取得する

ログが取得されて表示されるので、ログ上で右クリックして[SFDX: Launch Apex Replay Debugger with Current File]をクリックします。

SFDX; Launch Apex Replay Debugger with Current Fileをクリックします
ログファイル上でデバッガーが起動するので▷(Continue)ボタンをクリックします。
ブレークポイントを設定したApexコードに移動するので、実行順序や変数の値を確認できます。

Apexデバッグログを無効化

デバッグが終わったらデバッグログの生成を無効化します。

[SFDX: Replay Debugger用のApexデバッグログを無効化]を選択してログ出力を無効する

まとめ

Apex Replay Debuggerはその名の通り、実行時にデバッグできる機能ではなく、実行後にログからどんな実行がされたかを確認する機能です。
ただ、他の言語で提供されているデバッガーと体感的には同じで実行順序や変数の値を確認して、デバッグできるため、体感が大きく向上するのではないでしょうか。

この記事が気に入ったらサポートをしてみませんか?