こんにちは。
本日はセールスフォースの監視機能を使った、ユーザのデバッグログを取得して解析する方法を
書いていこうと思います。
セールスフォースでシステム管理者として運用をしているとユーザからの問合せを受けるんですが、どんな動きをしているのか、
どのページをみているのかなどが話だけではわからない時が多々あります。
そんな時にユーザがやっていることをログに吐き出して監視することができるので調査のスピードが上がること間違いなしです。
デバッグを張っておこう
今回のセールスフォースの監視ツールを使う前に、そもそもデバッグをApexに張っておくと
さらに便利に強力に調査を進めることができると思います。
その際にできればLoggingLevelを設定しておくと、後々ご紹介するDevToolでさらに便利に使えるはずです。
ちなみにLoggingLevelには
- NONE
- ERROR
- WARN
- INFO
- DEBUG
- FINE
- FINER
- FINEST
がありますが、最低限確認するのであればDEBUGを埋め込んでおけばOKかと思います。
ただ、コードの至る所にデバッグを張り巡らせておくのはログのサイズが無駄に多くなってしまうので
あまりおすすめしません。動的SOQLの最終のSOQLを表示させるためだとか、そういった具合に使っていくと良いと思います。
また、トリガやバッチなどで処理開始や処理終了などを入れておくのも保全性が上がるので良いと思います。
やり方は下記の形でOKです。
System.debug(logginglevel.DEBUG,variable);
要所要所にデバッグを入れたら今度はユーザがどんな動きをしているか監視しましょう。
デバッグログの取り方
デバッグログの取得設定は画面から行うことができます。
設定→環境→ログ→デバッグログ
から下記の画面にいきます。

ここでユーザ追跡フラグの新規ボタンから追跡したいユーザを追加します。
※追跡できるのはユーザだけではなく、Apexクラス、Apexトリガ、自動化ツールもできます。

追跡フラグを営業太郎さんに設定します。今回はデフォルトで用意されていた、デバッグレベルを使いますが、
新しいデバッグレベルボタンを押すとそれぞれのデバッグレベルを変更した違うレベルを作成して設定することもできます。
実際に試してみて、例えばDB関連だけ詳細を表示させたいなどがあれば個別に設定するのもいいと思います。
設定が完了しました。では営業太郎さんで実際に何か動かしてみましょう。
今回は下記の検索画面から検索ボタンを押した際に動的SOQLでリストを返却するというロジックです。

public void search(){
system.debug(logginglevel.DEBUG,'---検索処理開始---');
this.searchFlg = true;
String whereString = getWhere();
String soql = 'Select Name,Phone,AccountNumber From Account';
if (whereString != ''){
soql += whereString;
}
system.debug(logginglevel.DEBUG,'検索SOQL' + soql);
this.resultList = Database.query(soql);
system.debug(logginglevel.DEBUG,'---検索処理終了---');
}
では営業太郎さんで下記の検索を押してみます。

ではシステム管理者に戻って、またデバッグログのページにいきましょう。
すると先ほどのページの下の方のデバッグログパネルに営業太郎さんの実行したログが出ています。

ここから参照を押していただくと、営業太郎さんのログを見ることができます。さらにダウンロードもできますので、
検証作業をしていただくこともできるかと思います。
では次の項目で画面の説明をしていきます。
DevToolとの組み合わせ
タイトルがDevToolとの組み合わせなんですが画面の見方になります。
ただDevToolを入れておくとこのログが格段にみやすくなるのでぜひ入れておきましょう。
ちなみにDevToolに関しての過去記事も掲載しています。
ではログをみていきます。先ほどの画面から参照を押してみてください。

はい。これだけ見ると頭が痛くなりそうですね。そこでDevToolの登場です。
DevToolではこのログを処理で絞り込みをかけることができるので、おすすめです。
例えばこの場合、設定しているDebugだけを表示することもできます。
しかもログレベルによって色も変えてくれます。

このようにユーザが検索条件に何を入力したのかまでわかってしまいます。めちゃ便利です。
まさに監視なんですが、ユーザの問合せを受けてエラーの吐き出す条件をみたり、保存しておいたりといったことができるので
ぜひおすすめです。
ではでは。
コメント