(最終更新月: 2024年1月)
✔以下の疑問をお持ちの方へ向けた記事です
「Salesforceのデバッグログとは何か、どのような情報を提供するのか?」
「デバッグログの生成とアクセス方法は?」
「効果的なデバッグのためのデバッグログの読み方と活用方法は?」
✔この記事を読むことで得られる知識
- Salesforceのデバッグログの基本概念と機能
- デバッグログの生成とアクセスの方法
- デバッグログの解析と問題解決への応用
デバッグログは、システムの動作やエラーの詳細、パフォーマンス問題などを理解するのに役立つもの。
当記事では、デバッグログを生成しアクセスする方法、ログの読み方、および効果的なデバッグ手法について説明します。
ぜひ最後までご覧ください。
デバッグログの基本
デバッグログは、Salesforceで開発するうえで重要なツールです。
プログラムが正しく動作しているかをチェックし、問題が発生した際に原因を特定する際に非常に役立ちます。
- Salesforceのデバッグログとは何か
- デバッグログの重要性と役割
- デバッグログの基本的な構成
Salesforceのデバッグログとは何か
Salesforceのデバッグログとは、Salesforceのプラットフォーム上で発生するさまざまなプロセスの詳細な情報を記録するログのことです。
開発者は、以下などの実行時に発生するイベントを追跡できます。
- Apexコード
- ワークフロー
- バリデーションルール
System.debug('log message');
デバッグステートメントをログに出力できます。
これにより、コード内の特定のポイントでの変数の値や処理の状態を確認することが可能になります。
各ユーザーの動作はデバッグログとして以下にて確認可能です。
設定 > デバッグログ
デバッグログの重要性と役割
デバッグログには、システムの動作を解明するための重要な役割があります。
とくに問題が起きたときに、原因分析に使われることが多いです。
例えば、エラーメッセージでは詳細が不明な場合に、デバッグログを参照すれば、エラーの発生源となったコードの位置や、実行時の変数の状態など具体的な情報を特定できます。
これにより、問題が起きた原因の特定と修正が迅速におこなえるのです。
デバッグログの基本的な構成
デバッグログは、実行された各処理に対して、以下などの情報が記載されています。
- タイムスタンプ付きでセッション情報
- イベント情報
- メソッドの開始と終了
- エラーメッセージ
ログは通常、行ごとにタイプ(EVENT)、タイムスタンプ、ユーザーID、実行コンテキストなどの項目に分割されています。
また、ログファイルは設定メニューのデバッグログから確認できるほか、開発者コンソールでのリアルタイム表示や、Salesforce DX等を用いた取得も可能です。
デバッグログの取得と設定
デバッグログの取得と設定を理解することは、Salesforce上での効率的なトラブルシューティングに必要不可欠です。
- デバッグログの有効化とアクセス方法
- ログレベルの設定とカスタマイズ
- ユーザーごとのログの取得
デバッグログの有効化とアクセス方法
デバッグログを取得するためには、まずログの有効化をおこなう必要があります。
Salesforceでは、「設定」にある「デバッグログ」セクションから、以下の手順でログを有効化できます。
- 「新規」ボタンをクリック
- 追跡対象エンティティ名で対象のユーザーを選択
- デバッグレベルは既存の「SFDC_DevConsole」を選択
- 「保存」をクリック
追跡フラグを追加することで、指定したユーザーのログ取得を開始できます。
取得したいログの種類に応じて、ログレベルの設定もここでおこないます。
1.「新規」ボタンをクリック
2-4. 新たな追跡フラグの作成
ログレベルの設定とカスタマイズ
ログレベルは、ログに記録される情報の詳細度を調整するための設定です。
Apexコードで記載する際に、以下の7レベルから設定できます。
- 「Error」
- 「Warn」
- 「Info」
- 「Debug」
- 「Fine」
- 「Finer」
- 「Finest」
各カテゴリー(例えばApex、System、Databaseなど)ごとに設定が可能。
System.debug(LoggingLevel.WARN, 'Warning message');
コード内でログレベルを指定してメッセージを記録することも可能です。
ログを適切にフィルタリングすることで、必要な情報だけを効率的に収集できます。
ユーザーごとのログの取得
Salesforceでは、特定のユーザーやシステムプロセスのデバッグログを個別に取得できます。
これは、ユーザーベースやプロセスベースで特定の問題を追跡したい場合に非常に便利です。
これにより、問題が生じているユーザーの操作のみを対象にログを取得・分析することが可能となります。
デバッグログの解析と活用
デバッグログを適切に解析し活用することで、Salesforceのアプリケーションやシステムの問題をよりスムーズに解決できます。
- ログの読み方と解析の基本
- エラーとパフォーマンスの問題の特定
- ApexコードとSOQLクエリのトラブルシューティング
ログの読み方と解析の基本
ログを読む基本的な技術には、記録された各イベントを理解することが含まれます。
- タイムスタンプ
- イベントの種類
- 詳細なメッセージ
たとえば、「EXECUTION_STARTED」というエントリは、コードの実行が開始されたことを示しています。
ログを効率的に読むためには、ログレベルの調整で不要な詳細を省いたり、キーワード検索で特定のエラーメッセージを検索したりする技術が役立ちます。
開発者コンソールにはログのフィルタリングや検索するツールが用意されており、これらを活用するのもおすすめです。
エラーとパフォーマンスの問題の特定
デバッグログは、エラーが発生した場合やパフォーマンスに関連する問題を特定するのに役立ちます。
ログには例外が発生した正確な行と、そのときの変数の状態が記録され、エラーの原因をより迅速に特定できるからです。
また、実行時間やメモリ消費量などのパフォーマンス関連のメトリクスも含まれており、レスポンス時間を改善したりリソース使用量を最適化するための分析が可能です。
ApexコードとSOQLクエリのトラブルシューティング
ApexコードやSOQLクエリの問題は、デバッグログを通じてトラブルシューティングできます。
なぜなら以下のようなコーディングに直接関連する情報が多く含まれているからです。
- ログにはApexの例外
- データベースのエラー
- SOQLクエリの実行計画
たとえば、「SOQL_EXECUTE_BEGIN」と「SOQL_EXECUTE_END」の間に記録されている情報から、クエリ文の効率性を評価が可能。
ログを解析することで、コードの実行経路を追跡し、予期しない挙動やパフォーマンスボトルネックを特定できます。
デバッグログのベストプラクティス
デバッグログを最大限に活用するためのいくつかのベストプラクティスをここで紹介します。
- デバッグログの監視と管理
- チームでの共有とコラボレーション
デバッグログの監視と管理
デバッグログは絶えず生成されるため、監視と管理が重要。
Salesforceではログファイルにサイズの制限があり、しばしば古いログは自動的に削除されます。
重要なログは定期的に確認し、必要に応じて保存する習慣をつけることが大切です。
また、特定のトランザクションやイベントについてとくに注意深くログをチェックするなどの戦略も有効といえるでしょう。
チームでの共有とコラボレーション
デバッグログはチームメンバー間で共有することで、より迅速な問題解決に繋がります。
ログの共有は、全開発者が把握すべき問題の可視化に役立ち、共通の認識を持てるからです。
また、チームメンバー間での知識共有やベストプラクティスの交換も促進されます。
ツールを利用してログ情報を簡易的にレポート形式で共有する、または、問題が発生した具体的なケースをチーム内でディスカッションするためのトピックとするなどさまざまな方法があります。
デバッグログのトラブルシューティング
トラブルシューティングはデバッグログを解析する際の最終段階です。
ここではログに関連する一般的な問題やその解決策を紹介します。
- 一般的なログ関連の問題
- ログデータの解釈と誤解
- デバッグプロセスの改善
一般的なログ関連の問題
一般的なログ関連の問題には、ログが詳細すぎて重要な情報を見つけにくい、あるいはログが生成されないというケースがあります。
詳細すぎるログはログレベルの調整で解決が可能です。
ログがまったく生成されない場合はユーザーとのトレースフラグが設定されているか、ログのサイズ枠がいっぱいになっていないか確認しましょう。
ログデータの解釈と誤解
ログデータは正しい解釈が非常に重要。
誤解を避けるために、ログの読み方や各イベントの意味を正確に理解しましょう。
また、ログ内のメッセージが指し示す内容が必ずしも明確でないこともあります。
これを克服するために、経験豊かな同僚に相談したり、Salesforceのドキュメントを参照したりすることが効果的です。
デバッグプロセスの改善
デバッグプロセスを改善することで、将来的な問題をより迅速かつ簡単に解決できるようになります。
- ログ分析を繰り返しおこない、パターンを見抜く能力を身に着ける
- 問題解決に効果的だったアプローチをドキュメント化しておく
問題解決に有効だったアプローチを共有し、チーム内でのデバッグタスクのノウハウを蓄積することも、デバッグプロセスを改善する上で重要です。
まとめ
デバッグログはSalesforce開発におけるトラブルシューティングの要です。
適切な取得、設定、解析を行うことで、エラーやパフォーマンスの問題を特定し改善に繋げられます。
ベストプラクティスを実施し、チーム内で知識を共有し合うことによって、より効率的な問題解決を目指しましょう。
最終的には、これらのテクニックを活用し、Salesforceの開発プロセスをスムーズに進められるようになることを目指してください。