我正在使用哨兵来跟踪在三种不同平台上运行的移动应用程序后端的错误:iOS,Android,WindowsPhone。

Sentry的字段如下:deviceos。应该设置HTTP标头中的哪些参数,以便哨兵将其解析并匹配到该字段中?

我在后端使用django。

例如,iOS应用发送以下User-Agent:AppName/100 CFNetwork/711.1.12 Darwin/14.0.0我应如何设置其格式,以便哨兵可以显示osdevice

最佳答案

如果您使用的是Sentry-Android(我的库),则可以设置自定义捕获侦听器以发送所需的任何数据-https://github.com/joshdholtz/sentry-android#set-a-listener-to-intercept-the-sentryeventbuilder-before-each-capture

下面的示例发送wifi状态和一些随机标签,但是您可以发送想要的任何数据。

// CALL THIS BEFORE CALLING Sentry.init
// Sets a listener to intercept the SentryEventBuilder before
// each capture to set values that could change state
Sentry.setCaptureListener(new SentryEventCaptureListener() {

    @Override
    public SentryEventBuilder beforeCapture(SentryEventBuilder builder) {

        // Needs permission - <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        ConnectivityManager connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        // Sets extra key if wifi is connected
        try {
            builder.getExtra().put("wifi", String.valueOf(mWifi.isConnected()));
            builder.getTags().put("tag_1", "value_1");
        } catch (JSONException e) {}

        return builder;
    }

});

让我知道您是否还有其他疑问!

10-08 15:55