pix*_*xel 10 android google-analytics stack-trace
我想在Google Analytic的报告中为我的移动应用程序提供整个堆栈跟踪.
我编写了打印堆栈跟踪的类并将其放入字符串中,但它不起作用.
我的习惯ExceptionParser:
@Override
public String getDescription(String threadName, Throwable throwable) {
return threadName + " " + getStackTrace(throwable);
}
private String getStackTrace(Throwable throwable) {
final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result);
throwable.printStackTrace(printWriter);
return result.toString();
}
Run Code Online (Sandbox Code Playgroud)
我这样设置:
EasyTracker.getTracker().setExceptionParser(new StacktraceExceptionParser());
Run Code Online (Sandbox Code Playgroud)
下面的方法将整个堆栈跟踪组合成一个逗号分隔的行,这可能有助于Analytics返回第一行.但是仍然可能存在长度限制,因此可以谨慎地进行过滤以消除您不需要的项目(请参阅注释)
public String getCombinedStackTrace(Throwable aThrowable) {
final StringBuilder result = new StringBuilder();
result.append(aThrowable.toString());
result.append(',');
String oneElement;
for (StackTraceElement element : aThrowable.getStackTrace() ) {
// you can do some filtering here, selecting only the elements you need
oneElement = element.toString();
result.append( oneElement );
result.append( ",");
}
return result.toString();
}
Run Code Online (Sandbox Code Playgroud)
我是Nikolay关于使用错误报告库的评论.我发现它非常有帮助.
我知道这个线程已经老了但是我想弄清楚如何使这个工作,但为了完整性,在Log上有一个有用的方法可以做你想要的
String stackTraceStr = Log.getStackTraceString(exception);
Run Code Online (Sandbox Code Playgroud)
编辑:回应100 char限制评论
我永远无法EasyTracker.getTracker().setExceptionParser(...)工作,事实上我认为它不起作用,所以我在这里关注博客文章http://dandar3.blogspot.co.uk/2013/03/google-analytics-easytracker-detailed.html
博客文章中的重点是确保在GA异常处理程序上设置ExceptionParser:
// Make sure you set the context on EasyTracker first
EasyTracker.getInstance().setContext(this);
// As in in the blog post, we have to get the ExceptionReporter
// in order to set the ExceptionParser
Thread.UncaughtExceptionHandler uncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler();
if (uncaughtExceptionHandler instanceof ExceptionReporter) {
ExceptionReporter exceptionReporter = (ExceptionReporter) uncaughtExceptionHandler;
exceptionReporter.setExceptionParser(new AnalyticsExceptionParser());
}
Run Code Online (Sandbox Code Playgroud)
这对我有用,并记录超过100个字符.
| 归档时间: |
|
| 查看次数: |
3140 次 |
| 最近记录: |