yujiroのプログラミング

勉強内容をアウトプットし、サボらないようにする為のブログ

<DAY214>salesforceのデバッグについて

\ Follow me!! /

●9/23(月)
●学習日数 214日
●学習時間(本日)3時間
●累計学習時間 908.0時間
●一日あたりの平均学習時間 4.28時間

f:id:yujiro0320:20190904163314p:plain

System.debug()

メッセージの出力

System.debug('Your Message');

変数の表示

System.debug(yourVariable);

表示ラベルの値

System.debug('Your Label: ' + yourVariable);

ログインスペクタの使用

便利なログインスペクタは、膨大なログを見やすくするために存在します! ログインスペクタはログパネルビューを使用して、コードのさまざまなパースペクティブを示します。[Debug (デバッグ)] | [View Log Panels (ログパネルを参照)] を選択して確認。

これらのログパネルは相互に連携して、独自のコードをデバッグしやすくします。たとえば、[Execution Log (実行ログ)] または [Stack Tree (スタックツリー)] のログエントリをクリックすると、他のパネル ([Source (ソース)]、[Source List (ソースリスト)]、[Variables (変数)]、[Execution Stack (実行スタック)]) が更新され、関連情報が表示されます。


f:id:yujiro0320:20190923125521p:plain

ログインスペクターで具体的に使えるパネル

log-view_log_panelにて開く事ができる。

f:id:yujiro0320:20190923131927p:plain

スタックツリー

トップダウンツリービューを使用して、オブジェクトの階層内のログエントリとその実行が表示されます。たとえば、あるクラスが別のクラスをコールする場合、2 つ目のクラスが 1 つ目の子として表示されます。

実行スタック

選択した項目のボトムアップビューが表示されます。ログエントリの後に、そのエントリをコールした操作が表示されます。

実行ログ

コードの実行中に発生したすべてのアクションが表示されます。

ソース

選択したログエントリが生成されたときに実行中のコードの行を示す、ソースファイルのコンテンツが表示されます。

ソースリスト

イベントがログに記録されたときに実行中のコードのコンテキストが表示されます。たとえば、メールアドレスに誤った値が入力されたときに生成されるログエントリを選択すると、[Source List (ソースリスト)] に execute_anonymous_apex と表示されます。

変数

選択したログエントリを生成したコードが実行されたときに、変数とその割り当てられた値 (範囲内) が表示されます。

実行概要

実行時間やヒープサイズなど、実行中のコードの統計が表示されます。


パースペクティブマネージャおよびパースペクティブの切り替え方法

パースペクティブとは、パネルをグループ化したレイアウトです。たとえば、定義済みの「デバッグ」パースペクティブには実行ログ、ソース、変数が示され、「分析」パースペクティブにはスタックツリー、実行ログ、実行スタック、実行概要が示されます。

デバッグからスイッチにて簡単に切り替えができる。

ログデータを操作して必要な情報を検索

膨大なログデーターの中から、必要ばデータのみを抽出して、出力する事ができる。

ログカテゴリ

Apex コード

Apex メソッドの開始および終了に関する情報など、Apex コードに関連するイベントをログに記録します。

データベース

データベース操作言語 (DML)、SOSL および SOQL クエリ (後述) など、データベースイベントに関連するログを記録します。

ログレベルとその変更方法

ログレベルは累積です。たとえば、イベントのログレベルが INFO の場合、ERROR および WARN レベルの情報もログに記録されます。他方、ログレベルが ERROR の場合は、エラーメッセージのみを受け取ります。そのログカテゴリの警告メッセージやその他のログ情報は受け取りません。

f:id:yujiro0320:20190923131124p:plain


デバッグーchange_log_level
f:id:yujiro0320:20190923131400p:plain