- Apexでデバッグ文の出力を制御する方法
- ApexでSOQLの発行回数を確認する方法
目次
Apexでデバッグ文の出力を制御する方法
Apexでデバッグ文の出力を制御する方法について、説明させていただきます。 Apexで開発を行う場合、以下のようにデバッグ文を記述して、テストを行うのはよくあることだと思います。System.debug('Hello World!')。
デバッグ文でデバッグレベルを指定する場合の構文は、以下の通りです。
System.debug(デバッグレベル, 'Hello World!');
- Logginglevel.WARNを指定すると、デバッグログのログレベルで、「警告」から「最も詳細」を指定した場合に、デバッグログが出力されます。
- Logginglevel.DEBUGを指定すると、デバッグログのログレベルで、「デバッグ」から「最も詳細」までを指定した場合に、デバッグログが出力されます。
| 値 | 説明 |
|---|---|
| Logginglevel.NONE | ログを記録しない。 |
| Logginglevel.ERROR | エラーと例外のログを記録。 |
| Logginglevel.WARN | 警告のログを記録。 |
| Logginglevel.INFO | 通知のログを記録。 |
| Logginglevel.DEBUG | ユーザーが指定したデバッグのログを記録。 |
| Logginglevel.FINE | 高レベルのログを記録。 |
| Logginglevel.FINER | FINE より高レベルのログを記録。 |
| Logginglevel.FINEST | 最高レベルのログを記録。 |
System.debug(Logginglevel.ERROR, 'Hello World!');
System.debug(Logginglevel.NONE, 'Hello World!');
ApexでSOQLの発行回数を確認する方法
Apexでよく発生するエラーに「Too many SOQL queries」があります。 SOQLの発行回数が、ガバナ制限を超えた場合に発生するエラーです。 このエラーを回避するためには、SOQLの発行回数を削減するしかありません。 ※非同期にするという方法もあります。 しかし、複雑なプログラムの場合、どこでSOQLを多く発行しているかの調査に時間がかかったりします。 その際に役に立つのが、「Limits.getQueries()」です。 「Limits.getQueries()」を使用すると、その時点でのSOQLの発行回数がわかります。 各メソッドの最初と最後にデバッグ文を記述しておけば、どのメソッドで、SOQLを多く発行しているのかがわかるのです。 きっと、「Too many SOQL queries」エラーの解消に役立つことでしょう。 デバッグ文で「Limits.getQueries()」を記述する場合の例は、以下の通りです。System.debug('メソッド名:Start:SOQL発行回数 = ' + Limits.getQueries());
・
・
・
System.debug('メソッド名:End:SOQL発行回数 = ' + Limits.getQueries());



