#はじめに
Crashlyticsは、ほぼ自動でアプリのクラッシュレポートを送信してくれるすごいやつですが、レポートをみて解析するときにユーザー情報や行動ログなど、もう少し情報持たせたいな、という時があります。
そんなときにCrashlyticsのログに追加情報を設定する方法を紹介します。
#追加情報の設定
- アプリが終了すると設定した情報はクリアされるので適切なタイミングで設定しましょう。
- 追加情報には容量制限があるようです。(送信時に重すぎないため)
- CrashLyticsがクラッシュレポートを送信するタイミングはアプリ起動時やクラッシュ時など複数あるようです。
- 注意: あくまでもアプリがクラッシュしたときの追加情報となるため、下記の追加情報を設定した瞬間にレポートが送られるわけではありません。(ちょっぴりハマった)
##ログを追加する
Crashlytics.log(int priority, String tag, String msg);
でCrashlyticsのレポートにLogが追加されます。priorityはandroid.util.Logのレベルを設定することができます。
LogCatにも出力されます。
引数が一つの方はDebugのTag:CrashlyticsCoreが設定される簡易版です。
ユーザーの行動ログの出力などに使用することができます。
- Logは最大64KBまで送信することができます。あふれた分は過去のログから削除されます。
- 注意: クラッシュ直前に追加されたログは送信されないことがあるようです(めっちゃハマった)
Crashlytics.log(Log.WARN, "TAG_HOGE", "hogehoge");
//または
Crashlytics.log("hoge");
###ログの表示位置
一覧にLogは表示されないのでレポート詳細に入りView all sessionsから更にセッションの詳細から見ることができます。
Logはレポートのセッション詳細の上部のLogsに表示されます。
##ユーザー情報を追加する
ユーザーの情報をレポートに追加することができ、ユーザー特定に役に立ちます。
また、あとからCrashlyticsのコンソールからユーザー情報で検索することができます。
Crashlytics.setUserEmail("hoge@hoge.com");
Crashlytics.setUserIdentifier("12345");
Crashlytics.setUserName("john");
###ユーザー情報の表示位置
ユーザー情報はレポート詳細のDevice Statsticsの下に表示されます。
##key/valueを追加する
Stringやintのkey/valueのペアを設定することができます。
設定情報や状態など設定しておくと便利です。
ログはクラッシュの直前に追加すると送信されないことがあるようでしたが、こちらは直前でも反映されました。
- 同じKeyで設定すると上書きされて送信されます。
- 最大64ペア設定できます。それを超えると送信されません。
- 1つのkey/valueは最大サイズ1KB。
Crashlytics.setString("String", "string");
Crashlytics.setInt("int", 1);
Crashlytics.setFloat("float", 1f);
Crashlytics.setDouble("double", 1.0);
Crashlytics.setBool("bool", true);
Crashlytics.setLong("long", 1l);
###key/valueの表示位置
Keys/Logsトグルで切り替えるとLogと同じ箇所に表示されます。
#終わりに
以上になります。これでさらに快適なバグフィックスライフを送りましょう。
iOSはこちらが参考になると思います。
Crashlyticsにカスタムログを送信する方法
##参考
https://docs.fabric.io/android/crashlytics/enhanced-reports.html#custom-logging