2015-03-19 59 views
1

我正在使用Sentry来跟踪在三种不同平台上运行的移动应用程序的后端错误:iOS,Android和WindowsPhone。哨兵跟踪移动设备操作系统,设备应该如何指定标题以使其工作?

哨兵有像这样的字段:deviceos。 HTTP头中的参数应该设置,所以哨兵解析它并匹配到这些字段?

我在后端使用django。

E.g iOS应用程序发送以下用户代理:AppName/100 CFNetwork/711.1.12 Darwin/14.0.0我该如何格式化它,以便哨兵可以显示osdevice

回答

1

如果您正在使用哨兵的Android(我的图书馆),你可以设置自定义捕获听众送了你想要的任何数据 - https://github.com/joshdholtz/sentry-android#set-a-listener-to-intercept-the-sentryeventbuilder-before-each-capture

这下面的例子发送了无线状态和一些随机的标签,但你可以发送你想要的任何数据。

// 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; 
    } 

}); 

让我知道如果您有任何进一步的问题!