ReactNativeにSentryを導入する(バグレポート・イベントログ収集)
なぜSentryか
SentryはReact Nativeに対応したバグレポート・イベントログ収集ツールです。
類似ツールでReact Nativeに公式で対応しているものはあまりなく、ほとんどのサービスがコミュニティのラッパーでの対応ですが、Sentryならセットアップも簡単です。
例えば、おなじみのfetchやconsoleログがちゃんと認識されてログに残ります。
Sentryに登録
https://sentry.io/signup/
上記よりチームを作成します。
以下のコマンドで自動セットアップ
アカウントの作成が完了したら、以下のURLにあるように、2行のコマンドだけでセットアップが完了します。
https://sentry.io/settings/tenova/projects/react-native/install/react-native/
yarn add react-native-sentry
react-native link react-native-sentry
react-native linkの際にブラウザが開き、自動セットアップが開始します。
ユーザーをidentificateする
どのユーザーがエラーを起こしたかを確認するために、idなどを設定します。
import { Sentry } from 'react-native-sentry';
Sentry.setUserContext({
id: 'XXXXXXXX',
});
// ログアウト時には空で実行
Sentry.setUserContext({
});
移動履歴を追跡する
captureBreadcrumbを使って画面遷移をトラッキングします。
import { Sentry } from 'react-native-sentry';
...
componentDidMount() {
Sentry.captureBreadcrumb({
category: 'Mounted',
message: 'XXXScreen is mounted',
data: {
payload: 'meta sample'
}
});
}
...
以下のように、エラーが起きる前にTopScreenがマウントされていることがわかります。
任意のメッセージを送る
デフォルトでconsole.warningやconsole.errorは認識されますが、そのほかに任意でイベントを送りたい場合はcaptureMessageが使えます。
import { Sentry, SentrySeverity } from 'react-native-sentry';
...
Sentry.captureMessage('some warning', {
level: SentrySeverity.Warning
}
Sentry.captureMessage('critical error', {
level: SentrySeverity.Error
}
まとめ
初めてSentryを使ったのですが、思った以上にReact Nativeにちゃんと対応していて驚きました。
今の所React Native向けのバグレポートではSentryが一番使いやすいです。
Author And Source
この問題について(ReactNativeにSentryを導入する(バグレポート・イベントログ収集)), 我々は、より多くの情報をここで見つけました https://qiita.com/wktq/items/d1a63ee4896dd7155d51著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .