2014-02-17 1 views
4

Я работаю над Android-приложением, которое интегрировано с MixPanel для аналитики и BugSnag для мониторинга ошибок.MixPanel для мониторинга ошибок

В последнее время мы обнаружили крах в приложении, и, поскольку мы не смогли найти основную причину сбоя, мы добавили код для перезапуска приложения при возникновении ошибки. Наряду с перезапуском мы также начали отслеживать, сколько раз ошибка возникает. Мое предпочтение заключалось в том, чтобы использовать Bugsnag для этого же, но пара людей в команде спросила, почему мы не можем использовать MixPanel, потому что мы можем легко отфильтровать события с параметрами, которые мы отправили в MixPanel. Но я считаю, что MixPanel не следует использовать как специально для отслеживания пользовательских событий. И ни авария, ни перезапуск не происходят из-за пользовательского события, это происходит просто случайно.

Я хотел бы услышать предложения от сообщества относительно того же самого.

ответ

0

Вы можете использовать Thread.setDefaultUncaughtExceptionHandler(...) в вашем Application.onCreate, чтобы установить пользовательские Thread.UncaughtExceptionHandler, который отслеживает, чтобы MixPanel все UncaughtExceptions (Аварии) и установить такие свойства, как:

public class MyExceptionHandler implements UncaughtExceptionHandler 
{ 
    private UncaughtExceptionHandler defaultExceptionHandler; 

    public MyExceptionHandler (UncaughtExceptionHandler defaultExceptionHandler) 
    { 
     this.defaultExceptionHandler = defaultExceptionHandler; 
    } 

    public void uncaughtException(Thread thread, Throwable exception) 
    { 
     mMixPanelInstance.trackEvent("APP_CRASH", null); 
     if (defaultExceptionHandler != null) 
     { 
      defaultExceptionHandler.uncaughtException(thread, exception); 
     } 

    } 
} 


MyApplication.onCreate(...) 
{ 
    UncaughtExceptionHandler currentHandler = Thread.getDefaultUncaughtExceptionHandler(); 

    Thread.setDefaultUncaughtExceptionHandler(new MyExceptionHandler(currentHandler)); 
}