使用标记和优先级登录Crashlytics而不发送到logcat

时间:2018-02-27 04:42:25

标签: crashlytics google-fabric

根据documentation,有两种方法可以登录Crashlytics。

  1. Crashlytics.log(int priority, String tag, String msg);

    除了写入下一个崩溃报告外,它还将使用android.util.Log.println(priority, tag, msg)写入LogCat。

  2. Crashlytics.log(msg);

    只能写入Crashlytics崩溃报告[不是logcat]。

  3. 但是,第二种方法不允许我设置标记和优先级。相反,它会自动将结果标记设置为“CrashlyticsCore”并优先调试:

    来自Fabric仪表板:

    1   |   04:24:55:100 (UTC)  |   D/CrashlyticsCore ...
    2   |   04:24:55:101 (UTC)  |   D/CrashlyticsCore ...
    3   |   04:24:55:121 (UTC)  |   D/CrashlyticsCore ...
    

    如何保留我的实际标签和调试值?我想我可以创建一个自定义消息,但这看起来很难看,只会使Fabric混乱:

    String output = String.format(Locale.US, 
        "Priority: %d; %s : %s", priority, tag, message);
    Crashlytics.log(output);
    

1 个答案:

答案 0 :(得分:2)

如果您需要在Crashlytics中记录标签,但要避免使用Crashlytics.log(int priority, String tag, String msg);在LogCat中记录标签,我建议为Fabric启用SilentLogger

// Create Crashlytics Kit which doesn't trace crashes in debug mode
final Crashlytics crashlyticsKit = new Crashlytics.Builder().core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()).build();

// Use SilentLogger instead of DefaultLogger to avoid writing into LogCat 
Fabric.with(new Fabric.Builder(this).kits(crashlyticsKit).logger(new SilentLogger()).build());