1

crashlytics の例外ロギング中に、オブジェクト ダンプを追加で送信したいと考えています。たとえば、nullPointerException が発生したとします。私のモデルとなる大きなオブジェクトをさらに追加し、それをcrashlyticsのスタックトレース領域に含めたいと思います。このようにして、スタックトレースを見ると、ダンプからモデル情報を表示することもできます。通常の crashlytics ロギングに加えて、この情報をどのように送信しますか? これが私がこれまでに持っているものです:

        try{
    //....
throw new NullPointerException("my cool msg");

    }
          catch(Exception e){      
               Crashlytics.setInt("priority", 4);
                Crashlytics.setString("tag", "mytag");
                Crashlytics.setString("message", Model.toString());   
                Crashlytics.logException(e);         
    } 

今起こっていることは、何も現れていないということです。しかし、「メッセージ」の setString をコメント アウトすると、「my cool msg」というメッセージを含むスタック トレースが取得されます。

更新: Crashlytics.log(Model.toString()); も試しました。しかし、それはcrashlyticsには何も表示されません。私は onCreate の Application サブクラスから crashlytics を次のように設定しています: Fabric.with(this, new Crashlytics());

Cashlyticsのドキュメントから、私はこれを見つけました:

クラッシュ レポートの送信がユーザーのデバイスに与える影響を最小限に抑えるために、Crashlytics ログの最大サイズは 64 KB です。ログが 64 KB を超えると、このしきい値を維持するために、ログに記録された最も古い値が削除されます。

これは私の問題かもしれません。今自分のサイズをチェック中...

ペイロードのサイズを調整しても機能しませんでした。ペイロードを9文字にしましたが、まだ表示されません。

アップデート:

もう一度始めましょうが、もっと簡単です。以下がうまくいかないのはなぜですか?

try{
//....
throw new NullPointerException("my cool msg");

}
   catch(Exception e){      
        Crashlytics.setInt("priority", 4);
         Crashlytics.setString("tag", "mytag");
         Crashlytics.setString("message", "");   
         Crashlytics.logException(e);         
}

ここで実際に起こることは、「私のクールなメッセージ」という言葉でスタックトレースがcrasylyticsダッシュボードに表示されることですが、優先度、タグ、またはメッセージについては何もありません. スタックトレースのみが表示されます。これらの見出しなどのエントリがそこにあるはずはありませんか?

4

1 に答える 1

4

ここに画像の説明を入力

緑色の「すべてのセッションを表示」ボタンをクリックした後、カスタム情報を表示できました。彼らはそれをもっと明白にすることができたでしょう。

また、ドキュメントから、致命的ではない例外がバッチ処理され、次回のアプリ起動時に送信されるようです:

Crashlytics は専用のバックグラウンド スレッドで例外を処理するため、アプリへのパフォーマンスへの影響は最小限に抑えられます。ユーザーのネットワーク トラフィックを削減するために、Crashlytics はログに記録された例外をまとめてバッチ処理し、アプリの次回起動時に送信します。

于 2016-12-22T05:51:57.217 に答える